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 | ... | ... |