```C
#  define compat_widget_set_flag(widget, flag, enable) \
    do { \
        if (enable) \
            GTK_WIDGET_SET_FLAGS((widget), (flag)); \
        else \
            GTK_WIDGET_UNSET_FLAGS((widget), (flag)); \
    } while (0)
```

Though if we're at it we might even make the macro more proof like:

 ```C
#  define compat_widget_set_flag(widget, flag, enable) \
    do { \
        GtkWidget *set_flag__widget = (widget); \
        GtkWidgetFlags set_flag__flag = (flag); \
        if (enable) \
            GTK_WIDGET_SET_FLAGS(set_flag__widget, set_flag__flag); \
        else \
            GTK_WIDGET_UNSET_FLAGS(set_flag__widget, set_flag__flag); \
    } while (0)
```