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 | 255 | } |
256 | 256 | |
257 | 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 | 262 | static void event_listener(H3270 G_GNUC_UNUSED(*hSession), void *object) { |
... | ... | @@ -402,17 +403,22 @@ |
402 | 403 | |
403 | 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 | 423 | return state; |
418 | 424 | ... | ... |