- Sep 06, 2023
-
-
- Aug 25, 2023
-
-
ManoloFLTK authored
-
- Jul 16, 2023
-
-
Frank Praznik authored
Restore the minimum required wayland-protocols version to 1.15 and optionally enable the xdg-shell toplevel suspended state passthrough if 1.32 is available at build time.
-
- Jul 15, 2023
-
-
Bump xdg_wm_base_interface support to v6 and add support for passing through the xdg_toplevel 'suspended' window state.
-
- Jun 21, 2023
-
-
Gergo Koteles authored
The plugin loader checks for conflicting symbols in the executable or plugin. If so, it skips that plugin. Currently the GTK plugin has been skipped when libdecor is loaded with dlopen, because under these circumstances dlsym always finds png_free in the default library search order (RTLD_DEFAULT). It turned out that different libpng versions only caused problems if png_free was resolved differently in the plugin or by the default shared object search order. This fix modifies the check that the conflicting symbols are not the same inside the plugin and by the default search order. Tested with Stellaris (falls back to the cairo plugin) Blender (uses the GTK plugin) demo-egl (uses the GTK plugin) Cameractrls SDL viewer (uses the GTK plugin)
-
- Jun 06, 2023
-
-
Set destroyed widgets to NULL to make GTK_IS_WIDGET calls safe.
-
-
- May 26, 2023
-
-
Gergo Koteles authored
After a minimize if one clicks on the widgetless space of the headerbar, it will minimize again. This commit resets the hdr_focus.type in the pointer_leave to fix.
-
- May 16, 2023
-
-
We can't use libdecor_notify_plugin_error as context->plugin is nullptr and also we don't want it to be fatal. Simply fall back to the next plugin if we can. In gamescope's case, we don't have the globals that cairo/gtk backends want, so we want to fallback to dummy.
-
This affects whether we can get the globals to initialize correctly or not.
-
Gamescope does not advertise subcompositor so when this plugin is initialized, it fails and then attempts to destroy a NULL subcompositor which segfaults in wl_proxy code.
-
Gamescope does not advertise subcompositor so when this plugin is initialized, it fails and then attempts to destroy a NULL subcompositor which segfaults in wl_proxy code.
-
- May 15, 2023
-
-
Jonas Ådahl authored
Use the workflow suggested in [1]. [1] freedesktop/freedesktop#438
-
- May 01, 2023
-
-
- Apr 04, 2023
-
-
ManoloFLTK authored
-
- Feb 15, 2023
-
-
Ernst Persson authored
So it's higher than the stable 0.1.1 version.
-
- Feb 06, 2023
-
-
Erik Faye-Lund authored
This makes it easier to use libdecor as a meson subproject.
-
- Dec 29, 2022
-
-
- Dec 27, 2022
-
-
polter authored
When calculating border size we don't need to redraw the whole decoration but only the title bar, it's enough to get correct height. Also we don't need to redraw it every time, but only when window has been maximized or tiled. This dramatically improves window resize performance. Signed-off-by: Pavel Artsishevsky <polter.rnd@gmail.com>
-
- Dec 10, 2022
-
-
Christian Rauch authored
-
Christian Rauch authored
-
- Dec 03, 2022
-
-
Christian Rauch authored
-
Christian Rauch authored
-
- Nov 25, 2022
-
-
Window state should be set first because it is used in `libdecor_configuration_get_content_size()` later. Just like it was done in commit c1c62e31 for plain-c demo. Signed-off-by: Pavel Artsishevsky <polter.rnd@gmail.com>
-
- Nov 03, 2022
-
-
Christian Rauch authored
-
- Oct 27, 2022
-
-
Christian Rauch authored
-
Christian Rauch authored
-
Christian Rauch authored
-
This fix applies new window state first and only after that the border size is calculated. Signed-off-by: Pavel Artsishevsky <polter.rnd@gmail.com>
-
- Sep 19, 2022
-
-
Christian Rauch authored
-
Christian Rauch authored
Designated initializers are only available in C++20 onwards.
-
Christian Rauch authored
-
Jonas Ådahl authored
If these are present in the process already, the plugin is not loaded. This avoids problem with common scenarios where e.g. image loaders for formats used by e.g GTK.
-
- Sep 16, 2022
-
-
ManoloFLTK authored
The problem to be taken care of is that libdecor_frame_close() may or may not close the decorated window and thus destroy its frame. Subsequent code should then not access the frame it it was destroyed. The solution is to proceed as follows libdecor_frame_ref() <--- the frame's reference count goes to 2 libdecor_frame_close() <--- the frame's reference count goes to 1 update the frame <--- the frame has not been destroyed yet, so it can be updated libdecor_frame_unref() <--- the frame's reference count goes to 0, and the frame is destroyed. This solution is also compatible with cases where libdecor_frame_close() triggers a "Confirm this window is to be closed" which ends up keeping the window alive.
-
- May 31, 2022
-
-
Olivier Fourdan authored
If os_resize_anonymous_file() called from os_create_anonymous_file() fails with EINTR (Interrupted system call), then the buffer allocation fails and the whole process will segfault: (gdb) bt in draw_component_content () at src/plugins/cairo/libdecor-cairo.c draw_border_component () at src/plugins/cairo/libdecor-cairo.c in draw_border () at src/plugins/cairo/libdecor-cairo.c draw_decoration () at src/plugins/cairo/libdecor-cairo.c in libdecor_frame_commit () at src/libdecor.c [...] (gdb) p border_component->server.buffer $2 = (struct buffer *) 0x0 And the log shows: creating a buffer file for 61023744 B failed: Interrupted system call To avoid that, retry posix_fallocate() on EINTR. However, in the presence of an alarm, the interrupt may trigger repeatedly and prevent a large posix_fallocate() to ever complete successfully, so we need to first block SIGALRM to prevent this.
-
- Apr 28, 2022
-
-
Christian Rauch authored
-
Christian Rauch authored
-
Christian Rauch authored
-
Christian Rauch authored
-