As a rule of thumb I try to avoid boolean types that are just integers-in-disguise when possible because they are accidents waiting to happen... 

#include <stdio.h>
#include <stdbool.h>
#include <glib.h>
#define X(expr) printf("%s -> %d\n", #expr, (int)(expr))
int main(int ac, char **av)
{
  gboolean glib_boolean = 2;
  bool real_boolean = 2;
  X(glib_boolean);
  X(real_boolean);
  X(glib_boolean == TRUE);
  X(real_boolean == true);
  return 0;
}

And yes, mce code is still littered with if(some_flag == TRUE) kind of constructs