GApplication: Check more before warning about a missing signal handler.

* gio/application.c (g_application_real_command_line): Check that the
default signal handler is not the current one before complaining, because
it is not unusual for overloads to call the base class implementation as
a matter of habit.
g_application_real_open() and g_application_real_activate() already do this
extra check.
This commit is contained in:
Murray Cumming 2011-02-28 11:15:13 +01:00
parent 1485871ed5
commit 91614bb5fe

View File

@ -255,18 +255,24 @@ static int
g_application_real_command_line (GApplication *application,
GApplicationCommandLine *cmdline)
{
static gboolean warned;
if (!g_signal_has_handler_pending (application,
g_application_signals[SIGNAL_COMMAND_LINE],
0, TRUE) &&
G_APPLICATION_GET_CLASS (application)->command_line == g_application_real_command_line)
{
static gboolean warned;
if (warned)
return 1;
g_warning ("Your application claims to support custom command line "
"handling but does not implement g_application_command_line() "
"and has no handlers connected to the 'command-line' signal.");
warned = TRUE;
}
if (warned)
return 1;
g_warning ("Your application claims to support custom command line "
"handling but does not implement g_application_command_line() "
"and has no handlers connected to the 'command-line' signal.");
warned = TRUE;
return 1;
}
static gboolean