mirror of
https://cagebreak.project-repo.co/cagebreak.git
synced 2026-08-22 05:24:22 +02:00
Release 1.4.0
- Add support for closing windows - Fix Issue 13 - Remove unnecessary header includes
This commit is contained in:
parent
c7c0c46fbe
commit
31d53c5a8d
28 changed files with 100 additions and 70 deletions
14
Bugs.md
14
Bugs.md
|
|
@ -171,3 +171,17 @@ Steps to reproduce:
|
|||
* Split screen with firefox on the right side of the screen
|
||||
* Observe firefox freezing and flickering, especially while scrolling
|
||||
|
||||
### Issue 13
|
||||
|
||||
* github issue number: N/A
|
||||
* Fixed: 1.4.0
|
||||
|
||||
Cagebreak up to and including release 1.3.4 does not render xwayland views correctly.
|
||||
|
||||
Steps to reproduce:
|
||||
|
||||
* Open anki
|
||||
* Add card
|
||||
* Edit tags
|
||||
* Observe suggestions not directly above the tags field
|
||||
|
||||
|
|
|
|||
15
README.md
15
README.md
|
|
@ -180,6 +180,11 @@ ninja -C build
|
|||
|
||||
For every release after 1.0.5, hashes will be provided.
|
||||
|
||||
1.4.0
|
||||
|
||||
* sha 256: 14aa93d890c62cc763b3b546a51ad8560479d5e91fa9f949858ae6bc785e80be
|
||||
* sha 512: 88f93b49792684c38553b65d2296a0e502a059814a0cfff30d05c89958870d6f66d67aac2074cfd307bad82b0d72d5c4944822a61a68f665dc161407db365fbc
|
||||
|
||||
1.3.4
|
||||
|
||||
* sha 256: ea9f634b8f6e2b9f191745a25abff4969eb7ea19cb3186b79a6138904aedeb1c
|
||||
|
|
@ -305,6 +310,12 @@ We have found code path discovery to increase rapidly when the fuzzer is supplie
|
|||
with an initial config file. We are working on improving our fuzzing coverage to
|
||||
find bugs in other areas of the code.
|
||||
|
||||
#### Caveat
|
||||
|
||||
Currently, there are memory leaks which do not seem to stem from our code but rather
|
||||
the code of wl-roots or some other library we depend on. We are working on the problem.
|
||||
In the meantime, add `-Ddetect-leaks=0` to the meson command to exclude memory leaks.
|
||||
|
||||
## Bugs
|
||||
|
||||
For any bug, please [create an
|
||||
|
|
@ -349,6 +360,10 @@ Adds output configuration as described in the man pages.
|
|||
|
||||
Adds IPC as described in the man pages.
|
||||
|
||||
### Release 1.4.0
|
||||
|
||||
Adds close command for windows as described in the man pages.
|
||||
|
||||
## License
|
||||
|
||||
Please see [LICENSE](https://github.com/project-repo/cagebreak/blob/master/LICENSE)
|
||||
|
|
|
|||
|
|
@ -10,15 +10,12 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <fontconfig/fontconfig.h>
|
||||
#include <getopt.h>
|
||||
#include <pango.h>
|
||||
#include <pango/pangocairo.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
#include <wayland-server-core.h>
|
||||
|
|
@ -31,7 +28,6 @@
|
|||
#include <wlr/types/wlr_gamma_control_v1.h>
|
||||
#include <wlr/types/wlr_idle.h>
|
||||
#include <wlr/types/wlr_idle_inhibit_v1.h>
|
||||
#include <wlr/types/wlr_output_damage.h>
|
||||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/types/wlr_screencopy_v1.h>
|
||||
#include <wlr/types/wlr_server_decoration.h>
|
||||
|
|
@ -54,7 +50,6 @@
|
|||
#include "parse.h"
|
||||
#include "seat.h"
|
||||
#include "server.h"
|
||||
#include "view.h"
|
||||
#include "xdg_shell.h"
|
||||
#if CG_HAS_XWAYLAND
|
||||
#include "xwayland.h"
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ bind j focusdown
|
|||
bind k focusup
|
||||
bind l focusright
|
||||
bind t exec xterm
|
||||
bind C-k close
|
||||
definekey resize h resizeleft
|
||||
definekey resize l resizeright
|
||||
definekey resize j resizedown
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
* See the LICENSE file accompanying this file.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <wayland-server-core.h>
|
||||
#include <wlr/types/wlr_idle.h>
|
||||
#include <wlr/types/wlr_idle_inhibit_v1.h>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef CG_IDLE_INHIBIT_H
|
||||
#define CG_IDLE_INHIBIT_H
|
||||
|
||||
#include <wayland-server-core.h>
|
||||
struct wl_listener;
|
||||
|
||||
void
|
||||
handle_idle_inhibitor_v1_new(struct wl_listener *listener, void *data);
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <wayland-server-core.h>
|
||||
|
||||
struct cg_server;
|
||||
|
|
|
|||
22
keybinding.c
22
keybinding.c
|
|
@ -1,12 +1,6 @@
|
|||
#define _POSIX_C_SOURCE 200809L
|
||||
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/sysmacros.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <wayland-server-core.h>
|
||||
#include <wlr/backend/multi.h>
|
||||
|
|
@ -22,7 +16,6 @@
|
|||
#include "server.h"
|
||||
#include "view.h"
|
||||
#include "workspace.h"
|
||||
#include "xdg_shell.h"
|
||||
|
||||
int
|
||||
keybinding_resize(struct keybinding_list *list) {
|
||||
|
|
@ -549,6 +542,14 @@ keybinding_split_output(struct cg_output *output, bool vertical) {
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
keybinding_close_view(struct cg_view *view) {
|
||||
if(view == NULL) {
|
||||
return;
|
||||
}
|
||||
view->impl->close(view);
|
||||
}
|
||||
|
||||
static void
|
||||
keybinding_split_vertical(struct cg_server *server) {
|
||||
keybinding_split_output(server->curr_output, true);
|
||||
|
|
@ -964,6 +965,11 @@ run_action(enum keybinding_action action, struct cg_server *server,
|
|||
case KEYBINDING_CONFIGURE_OUTPUT:
|
||||
keybinding_configure_output(server, data.o_cfg);
|
||||
break;
|
||||
case KEYBINDING_CLOSE_VIEW:
|
||||
keybinding_close_view(
|
||||
server->curr_output->workspaces[server->curr_output->curr_workspace]
|
||||
->focused_tile->view);
|
||||
break;
|
||||
default: {
|
||||
wlr_log(WLR_ERROR,
|
||||
"run_action was called with a value not present in \"enum "
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <wlr/types/wlr_keyboard.h>
|
||||
#include <stdint.h>
|
||||
#include <xkbcommon/xkbcommon.h>
|
||||
|
||||
struct cg_server;
|
||||
|
||||
|
|
@ -14,6 +14,7 @@ struct cg_server;
|
|||
* in keybinding.c */
|
||||
enum keybinding_action {
|
||||
KEYBINDING_RUN_COMMAND, // data.c is the string to execute
|
||||
KEYBINDING_CLOSE_VIEW,
|
||||
KEYBINDING_SPLIT_VERTICAL,
|
||||
KEYBINDING_SPLIT_HORIZONTAL,
|
||||
KEYBINDING_CHANGE_TTY, // data.u is the desired tty
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
% CAGEBREAK-CONFIG(1) Version 1.3.4 | Cagebreak Manual
|
||||
% CAGEBREAK-CONFIG(1) Version 1.4.0 | Cagebreak Manual
|
||||
|
||||
# NAME
|
||||
|
||||
|
|
@ -36,6 +36,11 @@ by prepending a line with the # symbol.
|
|||
> supplied action. `bind <key> <command>` is equivalent to
|
||||
>> `definekey root <key> <command>`
|
||||
|
||||
**close - Close current window**
|
||||
|
||||
> This command closes the current window. It may be useful for windows of applications which
|
||||
> do not offer any method of closing them.
|
||||
|
||||
**definekey - Bind key to action in arbitrary mode**
|
||||
|
||||
> This command behaves similarly to the **bind** command with the
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
% CAGEBREAK(1) Version 1.3.4 | Cagebreak Manual
|
||||
% CAGEBREAK(1) Version 1.4.0 | Cagebreak Manual
|
||||
|
||||
# NAME
|
||||
|
||||
|
|
|
|||
10
meson.build
10
meson.build
|
|
@ -1,5 +1,5 @@
|
|||
project('cagebreak', 'c',
|
||||
version: '1.3.4',
|
||||
version: '1.4.0',
|
||||
license: 'MIT',
|
||||
default_options: [
|
||||
'c_std=c11',
|
||||
|
|
@ -196,12 +196,12 @@ reproducible_build_versions = {
|
|||
'wayland_client': '1.18.0',
|
||||
'wayland_cursor': '1.18.0',
|
||||
'wlroots': '0.11.0',
|
||||
'xkbcommon': '0.10.0',
|
||||
'xkbcommon': '1.0.0',
|
||||
'fontconfig': '2.13.91',
|
||||
'pixman': '0.40.0',
|
||||
'pango': '1.46.0',
|
||||
'pango': '1.46.1',
|
||||
'cairo': '1.17.3',
|
||||
'pangocairo': '1.46.0',
|
||||
'pangocairo': '1.46.1',
|
||||
'math': '-1'
|
||||
}
|
||||
|
||||
|
|
@ -220,7 +220,7 @@ foreach name, dep : cagebreak_dependencies_dict
|
|||
endforeach
|
||||
|
||||
reproducible_build_compiler = 'gcc'
|
||||
reproducible_build_compiler_version = '10.1.0'
|
||||
reproducible_build_compiler_version = '10.2.0'
|
||||
|
||||
if cc.get_id() != reproducible_build_compiler
|
||||
warning('The compiler "' + cc.get_id() + '" differs from the one used to generate to binary specified in the README section "Reproducible Builds" (' + reproducible_build_compiler + ').')
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
#include "pango.h"
|
||||
#include <cairo/cairo.h>
|
||||
#include <pango/pangocairo.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <wlr/backend.h>
|
||||
#include <wlr/render/wlr_renderer.h>
|
||||
|
|
@ -9,9 +7,9 @@
|
|||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/util/log.h>
|
||||
|
||||
#include "cairo.h"
|
||||
#include "message.h"
|
||||
#include "output.h"
|
||||
#include "pango.h"
|
||||
#include "server.h"
|
||||
|
||||
cairo_subpixel_order_t
|
||||
|
|
|
|||
8
output.c
8
output.c
|
|
@ -13,7 +13,7 @@
|
|||
#include "config.h"
|
||||
#include <wlr/config.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <wayland-server-core.h>
|
||||
#include <wlr/backend.h>
|
||||
|
|
@ -21,26 +21,24 @@
|
|||
#if WLR_HAS_X11_BACKEND
|
||||
#include <wlr/backend/x11.h>
|
||||
#endif
|
||||
#include <wlr/render/wlr_renderer.h>
|
||||
#include <wlr/types/wlr_data_device.h>
|
||||
#include <wlr/types/wlr_matrix.h>
|
||||
#include <wlr/types/wlr_output.h>
|
||||
#include <wlr/types/wlr_output_damage.h>
|
||||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/types/wlr_surface.h>
|
||||
#include <wlr/types/wlr_xcursor_manager.h>
|
||||
#include <wlr/types/wlr_xdg_shell.h>
|
||||
#include <wlr/util/log.h>
|
||||
#include <wlr/util/region.h>
|
||||
#include <wlr/xwayland.h>
|
||||
|
||||
#include "keybinding.h"
|
||||
#include "view.h"
|
||||
#include "message.h"
|
||||
#include "output.h"
|
||||
#include "render.h"
|
||||
#include "seat.h"
|
||||
#include "server.h"
|
||||
#include "util.h"
|
||||
#include "view.h"
|
||||
#include "workspace.h"
|
||||
#if CG_HAS_XWAYLAND
|
||||
#include "xwayland.h"
|
||||
|
|
|
|||
4
pango.c
4
pango.c
|
|
@ -2,11 +2,7 @@
|
|||
#include <cairo/cairo.h>
|
||||
#include <pango/pangocairo.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <wlr/util/log.h>
|
||||
|
||||
char *
|
||||
|
|
|
|||
1
pango.h
1
pango.h
|
|
@ -1,7 +1,6 @@
|
|||
#ifndef _SWAY_PANGO_H
|
||||
#define _SWAY_PANGO_H
|
||||
#include <cairo/cairo.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
void
|
||||
get_text_size(cairo_t *cairo, const char *font, int *width, int *height,
|
||||
|
|
|
|||
4
parse.c
4
parse.c
|
|
@ -1,7 +1,6 @@
|
|||
#define _POSIX_C_SOURCE 200812L
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <wlr/util/log.h>
|
||||
|
||||
|
|
@ -9,7 +8,6 @@
|
|||
#include "output.h"
|
||||
#include "parse.h"
|
||||
#include "server.h"
|
||||
#include "workspace.h"
|
||||
|
||||
char *
|
||||
malloc_vsprintf(const char *fmt, va_list ap) {
|
||||
|
|
@ -364,6 +362,8 @@ parse_command(struct cg_server *server, struct keybinding *keybinding,
|
|||
keybinding->action = KEYBINDING_SPLIT_HORIZONTAL;
|
||||
} else if(strcmp(action, "quit") == 0) {
|
||||
keybinding->action = KEYBINDING_QUIT;
|
||||
} else if(strcmp(action, "close") == 0) {
|
||||
keybinding->action = KEYBINDING_CLOSE_VIEW;
|
||||
} else if(strcmp(action, "focus") == 0) {
|
||||
keybinding->action = KEYBINDING_CYCLE_TILES;
|
||||
keybinding->data.b = false;
|
||||
|
|
|
|||
1
render.c
1
render.c
|
|
@ -16,7 +16,6 @@
|
|||
#include <wlr/types/wlr_matrix.h>
|
||||
#include <wlr/types/wlr_output.h>
|
||||
#include <wlr/types/wlr_output_damage.h>
|
||||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/types/wlr_surface.h>
|
||||
#include <wlr/util/log.h>
|
||||
#include <wlr/util/region.h>
|
||||
|
|
|
|||
7
seat.c
7
seat.c
|
|
@ -12,10 +12,8 @@
|
|||
#include "config.h"
|
||||
|
||||
#include <linux/input-event-codes.h>
|
||||
#include <stdlib.h>
|
||||
#include <wayland-client-core.h>
|
||||
#include <wayland-client-protocol.h>
|
||||
#include <wayland-cursor.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <wayland-server-core.h>
|
||||
#include <wayland-server-protocol.h>
|
||||
#include <wlr/backend.h>
|
||||
|
|
@ -28,7 +26,6 @@
|
|||
#include <wlr/types/wlr_surface.h>
|
||||
#include <wlr/types/wlr_xcursor_manager.h>
|
||||
#include <wlr/util/log.h>
|
||||
#include <xdg_shell.h>
|
||||
#if CG_HAS_XWAYLAND
|
||||
#include <wlr/xwayland.h>
|
||||
#endif
|
||||
|
|
|
|||
12
server.c
12
server.c
|
|
@ -9,23 +9,11 @@
|
|||
|
||||
#define _POSIX_C_SOURCE 200809L
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <wayland-server-core.h>
|
||||
#include <wlr/types/wlr_box.h>
|
||||
#include <wlr/types/wlr_output.h>
|
||||
#include <wlr/types/wlr_surface.h>
|
||||
|
||||
#include "output.h"
|
||||
#include "seat.h"
|
||||
#include "server.h"
|
||||
#include "view.h"
|
||||
#include "workspace.h"
|
||||
#include "xdg_shell.h"
|
||||
#if CG_HAS_XWAYLAND
|
||||
#include "xwayland.h"
|
||||
#endif
|
||||
|
||||
void
|
||||
display_terminate(struct cg_server *server) {
|
||||
|
|
|
|||
BIN
signatures/1.3.4.sig
Normal file
BIN
signatures/1.3.4.sig
Normal file
Binary file not shown.
Binary file not shown.
3
view.c
3
view.c
|
|
@ -10,14 +10,12 @@
|
|||
#define _POSIX_C_SOURCE 200809L
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <wayland-server-core.h>
|
||||
#include <wlr/types/wlr_box.h>
|
||||
#include <wlr/types/wlr_compositor.h>
|
||||
#include <wlr/types/wlr_output.h>
|
||||
#include <wlr/types/wlr_output_damage.h>
|
||||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/types/wlr_surface.h>
|
||||
|
||||
#include "output.h"
|
||||
|
|
@ -25,7 +23,6 @@
|
|||
#include "server.h"
|
||||
#include "view.h"
|
||||
#include "workspace.h"
|
||||
#include "xdg_shell.h"
|
||||
#if CG_HAS_XWAYLAND
|
||||
#include "xwayland.h"
|
||||
#endif
|
||||
|
|
|
|||
2
view.h
2
view.h
|
|
@ -9,7 +9,6 @@
|
|||
|
||||
struct cg_server;
|
||||
struct wlr_box;
|
||||
struct wlr_surface;
|
||||
|
||||
enum cg_view_type {
|
||||
CG_XDG_SHELL_VIEW,
|
||||
|
|
@ -39,6 +38,7 @@ struct cg_view_impl {
|
|||
int *height_out);
|
||||
bool (*is_primary)(const struct cg_view *view);
|
||||
void (*activate)(struct cg_view *view, bool activate);
|
||||
void (*close)(struct cg_view *view);
|
||||
void (*maximize)(struct cg_view *view, int width, int height);
|
||||
void (*destroy)(struct cg_view *view);
|
||||
void (*for_each_surface)(struct cg_view *view,
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
#include "message.h"
|
||||
#include "output.h"
|
||||
#include "server.h"
|
||||
#include "view.h"
|
||||
#include "workspace.h"
|
||||
|
||||
#if CG_HAS_FANALYZE
|
||||
|
|
|
|||
11
xdg_shell.c
11
xdg_shell.c
|
|
@ -10,7 +10,6 @@
|
|||
#define _POSIX_C_SOURCE 200809L
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <wayland-server-core.h>
|
||||
#include <wlr/types/wlr_box.h>
|
||||
#include <wlr/types/wlr_output_layout.h>
|
||||
|
|
@ -214,6 +213,15 @@ activate(struct cg_view *view, bool activate) {
|
|||
wlr_xdg_toplevel_set_activated(xdg_shell_view->xdg_surface, activate);
|
||||
}
|
||||
|
||||
static void
|
||||
close(struct cg_view *view) {
|
||||
struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
|
||||
struct wlr_xdg_surface *surface = xdg_shell_view->xdg_surface;
|
||||
if(surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL) {
|
||||
wlr_xdg_toplevel_send_close(surface);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
maximize(struct cg_view *view, int width, int height) {
|
||||
struct cg_xdg_shell_view *xdg_shell_view = xdg_shell_view_from_view(view);
|
||||
|
|
@ -317,6 +325,7 @@ static const struct cg_view_impl xdg_shell_view_impl = {
|
|||
.get_geometry = get_geometry,
|
||||
.is_primary = is_primary,
|
||||
.activate = activate,
|
||||
.close = close,
|
||||
.maximize = maximize,
|
||||
.destroy = destroy,
|
||||
.for_each_surface = for_each_surface,
|
||||
|
|
|
|||
22
xwayland.c
22
xwayland.c
|
|
@ -9,14 +9,12 @@
|
|||
|
||||
#include <X11/Xutil.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <wayland-server-core.h>
|
||||
#include <wlr/types/wlr_box.h>
|
||||
#include <wlr/types/wlr_output_damage.h>
|
||||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/util/log.h>
|
||||
#include <wlr/xwayland.h>
|
||||
#include <xcb/xproto.h>
|
||||
|
||||
#include "output.h"
|
||||
#include "server.h"
|
||||
|
|
@ -73,6 +71,12 @@ activate(struct cg_view *view, bool activate) {
|
|||
wlr_xwayland_surface_activate(xwayland_view->xwayland_surface, activate);
|
||||
}
|
||||
|
||||
static void
|
||||
close(struct cg_view *view) {
|
||||
struct cg_xwayland_view *xwayland_view = xwayland_view_from_view(view);
|
||||
wlr_xwayland_surface_close(xwayland_view->xwayland_surface);
|
||||
}
|
||||
|
||||
static void
|
||||
maximize(struct cg_view *view, int width, int height) {
|
||||
struct cg_xwayland_view *xwayland_view = xwayland_view_from_view(view);
|
||||
|
|
@ -144,7 +148,18 @@ handle_xwayland_surface_commit(struct wl_listener *listener, void *_data) {
|
|||
struct cg_xwayland_view *xwayland_view =
|
||||
wl_container_of(listener, xwayland_view, commit);
|
||||
struct cg_view *view = &xwayland_view->view;
|
||||
view_damage_part(view);
|
||||
/* xwayland surface has moved */
|
||||
if(xwayland_view->xwayland_surface->x != view->ox ||
|
||||
xwayland_view->xwayland_surface->y != view->oy) {
|
||||
output_damage_surface(view->workspace->output, view->wlr_surface,
|
||||
view->ox, view->oy, true);
|
||||
view->ox = xwayland_view->xwayland_surface->x;
|
||||
view->oy = xwayland_view->xwayland_surface->y;
|
||||
output_damage_surface(view->workspace->output, view->wlr_surface,
|
||||
view->ox, view->oy, true);
|
||||
} else {
|
||||
view_damage_part(view);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -198,6 +213,7 @@ static const struct cg_view_impl xwayland_view_impl = {
|
|||
.get_geometry = get_geometry,
|
||||
.is_primary = is_primary,
|
||||
.activate = activate,
|
||||
.close = close,
|
||||
.maximize = maximize,
|
||||
.destroy = destroy,
|
||||
.for_each_surface = for_each_surface,
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@
|
|||
#define CG_XWAYLAND_H
|
||||
|
||||
#include "view.h"
|
||||
#include <wayland-server-core.h>
|
||||
#include <wlr/xwayland.h>
|
||||
|
||||
struct cg_xwayland_view {
|
||||
struct cg_view view;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue