https://github.com/raboof/notion/commit/3c81575d48b2fd1b851536e305961bb199ea36b5.patch From: Brahmajit Das Date: Wed, 1 May 2024 11:35:59 +0530 Subject: [PATCH] Fix build with GCC 14 and above MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Newer compilers such as GCC 14 ( and above ) have enabled a few compiler flags by default, -Wincompatible-pointer-types being one of them. Thus resulting in build errors such as: frame.c: In function ‘frame_set_numbers_extl’: frame.c:799:32: error: passing argument 1 of ‘ioncore_grab_establish’ from incompatible pointer type [-Wincompatible-pointer-types] 799 | ioncore_grab_establish(frame, numbers_grab_handler, NULL, | ^~~~~ | | | WFrame * {aka struct WFrame_struct *} For now a type casting can be used to supress the error, as changing the type of frame would require touching other parts of the codebase. This should be fine for now as WFrame is a WMPlex which is a WWindow. TODO: According to developer/s, frame->mplex->win would be a more type-safe way to achieve the same, but then it becomes less clear whether this is an 'is' or a 'has' relationship. First reported on Gentoo Linux with GCC 14, for more details please reffer https://bugs.gentoo.org/919249 Signed-off-by: Brahmajit Das --- ioncore/frame.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ioncore/frame.c b/ioncore/frame.c index dbe0d107c..2f7663815 100644 --- a/ioncore/frame.c +++ b/ioncore/frame.c @@ -796,7 +796,7 @@ bool frame_set_numbers_extl(WFrame *frame, const char *how) { if(how!=NULL && strcmp(how, "during_grab")==0){ bool new_state = frame_set_numbers(frame, SETPARAM_SET); - ioncore_grab_establish(frame, numbers_grab_handler, NULL, + ioncore_grab_establish((WRegion *)frame, numbers_grab_handler, NULL, 0, GRAB_DEFAULT_FLAGS&~GRAB_POINTER); return new_state; }