diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-06-23 09:39:46 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-06-23 09:40:39 +0200 |
| commit | fc72ea11b7c3703fab19ba6ae6fd358851a8f467 (patch) | |
| tree | 03089560de613b6c3252b53b3546b0fad41979f5 /swt.c | |
| parent | 20e95d917417e7b86eb602362e4c6d3bb17a0dcb (diff) | |
fix settitle crash
Diffstat (limited to 'swt.c')
| -rw-r--r-- | swt.c | 31 |
1 files changed, 30 insertions, 1 deletions
@@ -13,6 +13,7 @@ #include <errno.h> #include <stdlib.h> #include <locale.h> +#include <ctype.h> char *argv0; #include "wayland.h" @@ -100,6 +101,7 @@ static void data_device_data_offer(void *data, struct wl_data_device *data_devic static void data_source_send(void *data, struct wl_data_source *source, const char *mime_type, int fd); static void data_source_cancelled(void *data, struct wl_data_source *source); static void dummy() {} +static int is_valid_title(const char *title); /* global variables */ @@ -413,9 +415,36 @@ wseticontitle(char *title) { } +int +is_valid_title(const char *title) +{ + int i = 0; + + if (!title) + return 0; + + fprintf(stderr, "HERE\n"); + for (; i < STR_BUF_SIZ; ++i) { + if (title[i] == 0) { + return 1; + } + } + + fprintf(stderr, "FALSE\n"); + + return 0; +} + + void wsettitle(char *title) { - xdg_toplevel_set_title(win.surface.toplevel, title); + if (is_valid_title(title)) { + fprintf(stderr, "TRUE\n"); + xdg_toplevel_set_title(win.surface.toplevel, title); + fprintf(stderr, "SET TITLE\n"); + } else { + xdg_toplevel_set_title(win.surface.toplevel, "swt"); + } } |