Commit Graph

43 Commits

Author SHA1 Message Date
ManoloFLTK
48ec9ea660 libdecor: prevent crash using bullt-in libdecor with GDK_BACKEND=x11 (#1029) 2024-08-01 18:55:10 +02:00
ManoloFLTK
5365aefc6e libdecor: update to upstream commit c2bd8ad6 (31-may-2024) 2024-06-01 10:12:50 +02:00
ManoloFLTK
2af1da4ff4 Wayland: simpler implementation of "GTK Shell" protocol 2024-05-06 09:29:32 +02:00
ManoloFLTK
7ec6f96d9c Add "fl_" prefix to libdecor symbols when using the built-in copy of libdecor
This allows client apps to use other versions of libdecor if they wish,
just like what FLTK already does with libpng and libjpeg.
2024-04-20 13:35:53 +02:00
ManoloFLTK
e6957fc2f5 Allow libdecor package version ≥ 0.2.0 with FLTK_USE_SYSTEM_LIBDECOR 2024-04-18 19:32:47 +02:00
Albrecht Schlosser
b53b2b6e11 CMake: Remove "-no-pie" build option
libdecor/build/Makefile: unused anyway (previously used building demos)

src/CMakeLists.txt: broke some user builds, see fltk.general, thread
  "-no-pie in FLTK Libraries build." (Mar 17, 2024).

Todo: check usage of "-fPIC" (libdecor builds)
2024-03-21 14:27:29 +01:00
ManoloFLTK
82bd0b6652 Have FLTK use libdecor at version > 0.2.2
- it's no longer necessary to take care of the change in the layout of "struct libdecor"
between versions ≤ 0.2.2 and > 0.2.2 of libdecor
- version > 0.2.2 contains MR131, that is, it defines LIBDECOR_WINDOW_STATE_RESIZING
so the hack to emulate it is no longer  necessary
- CMake option FLTK_USE_SYSTEM_LIBDECOR now requires libdecor version > 0.2.2
to be activated, otherwise the bundled libdecor is used
- what will be the libdecor version after 0.2.2 (0.2.3? 0.3.0?) is not known as of today
2024-03-15 12:21:38 +01:00
ManoloFLTK
70a9c4d407 Update libdecor to upstream commit 09875530 dated March 3, 2024 2024-03-12 14:09:35 +01:00
Albrecht Schlosser
fd5cd80935 Introduce "Modern CMake" in FLTK
This is a big commit and there are too many changes to list them all.
The main changes are:

- rename all CMake build options to 'FLTK_*'
- export library targets with namespace (prefix) 'fltk::'
- standardize shared library target names with suffix '-shared'
- set public build properties on libraries for consumers
- document library names and aliases in README.CMake.txt
- document changes in "Migrating Code from FLTK 1.3 to 1.4"
- partial backwards compatibility for old user projects

Included but not directly related changes:

- fix Windows (Visual Studio) DLL build
- add CMake function fl_debug_target() to show target properties
- don't build test programs if FLTK is a subproject
- internal: reformat CMake code: remove space before '('

Thanks to Matthias and Manolo for their help, testing, and feeback.
2024-02-07 18:37:34 +01:00
ManoloFLTK
2030995f6b Wayland+libdecor: iImprove fl_is_surface_gtk_titlebar() 2023-12-15 15:48:47 +01:00
ManoloFLTK
ce06a6b519 Some reorganization of fl_libdecor-plugins.c 2023-12-15 12:05:41 +01:00
ManoloFLTK
673fa2e09c FLTK implementation of the "GTK Shell" Wayland protocol - cont'd
The loop over all libdecor-gtk decorations is now made using libdecor's
data structures, rather than using FLTK's mapped window list.
2023-12-14 07:55:31 +01:00
ManoloFLTK
0936c2a55d FLTK implementation of the "GTK Shell" Wayland protocol - cont'd
The pointer_enter() function now checks that its non-FLTK wl_surface  argument
is the wl_surface of the titlebar of a GTK-decorated window.
2023-12-13 14:48:08 +01:00
ManoloFLTK
b759767798 Remove unnecessary #include <linux/input.h> 2023-12-07 09:05:57 +01:00
ManoloFLTK
18ccbb4a4f Wayland: much lighter but partial implementation of the "GTK Shell" protocol
Only the middle-button click gesture is implemented which avoids interference
with what libdecor does with right-click and double-click.
2023-12-05 22:53:26 +01:00
ManoloFLTK
f72748bb45 Wayland: make OPTION_USE_SYSTEM_LIBDECOR ON by default
This commit makes the default FLTK build setting use libdecor
as packaged in Linux when the build system contains packages
libdecor-0-dev and libdecor-0-plugin-1-gtk in version ≥ 0.2.0.
Otherwise, FLTK uses the bundled version of libdecor.
This includes situations where package libdecor-0-dev is
present in an earlier version.
2023-12-02 09:28:08 +01:00
ManoloFLTK
9b33cadbc1 Wayland: use GTK Shell also with system libdecor - cont'd 2023-11-30 21:11:43 +01:00
ManoloFLTK
7472e41ccc Wayland: use GTK Shell also with system libdecor 2023-11-30 19:36:06 +01:00
ManoloFLTK
ed5ee81ccd Wayland: add changes to struct libdecor_frame_gtk 2023-11-30 16:40:13 +01:00
ManoloFLTK
83f6336f3b Libdecor-gtk and GTK Shell: take care of LIBDECOR_PLUGIN_DIR 2023-11-14 14:29:36 +01:00
ManoloFLTK
19e40058da Libdecor-gtk and GTK Shell: take care of touch events 2023-11-14 12:14:04 +01:00
ManoloFLTK
52f6b6abbb Libdecor GTK plugin: use gnome value for doubleclick time 2023-11-13 16:39:03 +01:00
ManoloFLTK
888dc5f5c5 Have libdecor-gtk implement the "GTK Shell" protocol 2023-11-12 19:13:35 +01:00
ManoloFLTK
afc60b2503 Update to libdecor ca6e6b68 dated 25-aug-2023 2023-08-25 15:06:27 +02:00
ManoloFLTK
46fab88c7f Remove unneeded #include directive 2023-08-24 09:49:03 +02:00
ManoloFLTK
f85ee3541a Wayland: simpler implementation of get_libdecor_plugin_description() 2023-08-06 19:04:16 +02:00
ManoloFLTK
d9fa2c6082 Wayland.dox: add info about the xdg decoration protocol
Also, use KWin to name the KDE desktop's Wayland compositor.
2023-07-28 15:27:38 +02:00
ManoloFLTK
fa0aa95443 libdecor: update with upstream source code as of 2023-JUL-15 2023-07-22 14:23:08 +02:00
ManoloFLTK
cdd1566cf9 Allow building Wayland platform without dbus (#726)
This commit supports configure-based builds without the dbus-dev package;
CMake-based builds are expected to be changed in further commit.
2023-04-30 18:41:49 +02:00
ManoloFLTK
64ac7b47b8 Improve detection of the location of Wayland protocol files across OSes 2023-03-29 15:25:29 +02:00
ManoloFLTK
02adfc0560 Wayland: remove libdecor/demo/* from FLTK source tree 2023-02-16 08:56:37 +01:00
Albrecht Schlosser
410e57d2db Don't build libdecor demos, add generated files to .gitignore
1) We don't need to build the libdecor demo programs for FLTK.

2) The Wayland build process generates some source and header files
   in the main src/ directory. These files are now ignored by git.
2022-11-23 13:33:52 +01:00
ManoloFLTK
a5d2b5ed45 libdecor: update from source git repo (commit e87dcfda)
This brings the GTK plugin inside the master libdecor git repo.
2022-11-03 08:16:49 +01:00
ManoloFLTK
2ffd4e4f1a Replace all calls to sprintf() by calls to snprintf(). 2022-09-26 16:12:18 +02:00
ManoloFLTK
736c20f7a2 Wayland platform: remove redirection of stderr. 2022-08-31 10:43:10 +02:00
ManoloFLTK
6add57d4bd Wayland under FreeBSD: use package evdev-proto which brings linux/input.h 2022-06-06 15:32:54 +02:00
ManoloFLTK
bdd340e1e1 libdecor - GTK plugin: pull upstream changes (0542faad - 21 may 2022).
But keep FLTK changes.
2022-05-27 11:45:53 +02:00
ManoloFLTK
f8bdf2cd87 Fix default value of LIBDECOR_PLUGIN_DIR preprocessor variable. 2022-05-20 08:42:53 +02:00
ManoloFLTK
6686d2bfa9 Wayland platform: add support of FreeBSD version 13.1 2022-05-19 17:18:53 +02:00
ManoloFLTK
8e21120f75 Restore use of CMake OPTION_USE_SYSTEM_LIBDECOR 2022-04-22 08:00:00 +02:00
ManoloFLTK
9367bb5108 Avoid code duplication using os_create_anonymous_file() from libdecor. 2022-04-21 07:38:51 +02:00
ManoloFLTK
7432079632 Add support of configure --enable-wayland --disable-gl 2022-03-22 21:28:29 +01:00
ManoloFLTK
3718effc43 Add the Wayland platform to FLTK 1.4 2022-03-04 15:41:00 +01:00