Commit 3d6c9913d8a3508b2465d872276bb4950d9a4423
1 parent
812c18ae
Exists in
master
and in
1 other branch
Fixing v3270 state methods.
Showing
1 changed file
with
16 additions
and
10 deletions
Show diff stats
src/terminal/actions/action.c
@@ -255,7 +255,8 @@ | @@ -255,7 +255,8 @@ | ||
255 | } | 255 | } |
256 | 256 | ||
257 | void v3270_action_notify_state(GAction *action) { | 257 | void v3270_action_notify_state(GAction *action) { |
258 | - g_idle_add((GSourceFunc) bg_notify_state, G_OBJECT(action)); | 258 | + if(V3270_ACTION_GET_CLASS(action)->type.state) |
259 | + g_idle_add((GSourceFunc) bg_notify_state, G_OBJECT(action)); | ||
259 | } | 260 | } |
260 | 261 | ||
261 | static void event_listener(H3270 G_GNUC_UNUSED(*hSession), void *object) { | 262 | static void event_listener(H3270 G_GNUC_UNUSED(*hSession), void *object) { |
@@ -402,17 +403,22 @@ | @@ -402,17 +403,22 @@ | ||
402 | 403 | ||
403 | GVariant * iface_get_state(GAction *object) { | 404 | GVariant * iface_get_state(GAction *object) { |
404 | 405 | ||
405 | - GtkWidget * terminal = V3270_ACTION(object)->terminal; | ||
406 | - GVariant * state; | 406 | + GVariant * state = NULL; |
407 | 407 | ||
408 | - if(terminal) { | ||
409 | - state = V3270_ACTION_GET_CLASS(object)->get_state(object,terminal); | ||
410 | - } else { | ||
411 | - state = g_variant_new_boolean(FALSE); | ||
412 | - } | 408 | + if(V3270_ACTION_GET_CLASS(object)->type.state) { |
409 | + | ||
410 | + GtkWidget * terminal = V3270_ACTION(object)->terminal; | ||
411 | + | ||
412 | + if(terminal) { | ||
413 | + state = V3270_ACTION_GET_CLASS(object)->get_state(object,terminal); | ||
414 | + } else { | ||
415 | + state = g_variant_new_boolean(FALSE); | ||
416 | + } | ||
417 | + | ||
418 | + if(state) | ||
419 | + g_variant_ref(state); | ||
413 | 420 | ||
414 | - if(state) | ||
415 | - g_variant_ref(state); | 421 | + } |
416 | 422 | ||
417 | return state; | 423 | return state; |
418 | 424 |