Commit a5f092d2ccf77267eb68f4010bbe8bc60b2e97c1
1 parent
ec9e605e
Exists in
master
and in
4 other branches
Fixing actions.
Showing
4 changed files
with
55 additions
and
19 deletions
Show diff stats
src/objects/window/actions/close.c
| @@ -54,7 +54,7 @@ | @@ -54,7 +54,7 @@ | ||
| 54 | 54 | ||
| 55 | V3270SimpleAction * action = v3270_simple_action_new(); | 55 | V3270SimpleAction * action = v3270_simple_action_new(); |
| 56 | 56 | ||
| 57 | - action->parent.activate = activate; | 57 | + action->activate = activate; |
| 58 | action->name = "close"; | 58 | action->name = "close"; |
| 59 | action->icon_name = "window-close"; | 59 | action->icon_name = "window-close"; |
| 60 | action->label = _("Close window"); | 60 | action->label = _("Close window"); |
src/objects/window/actions/connect.c
| @@ -55,7 +55,7 @@ | @@ -55,7 +55,7 @@ | ||
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | action->name = "connect"; | 57 | action->name = "connect"; |
| 58 | - action->parent.activate = activate; | 58 | + action->activate = activate; |
| 59 | action->label = _("Connect"); | 59 | action->label = _("Connect"); |
| 60 | action->tooltip = _("Connect to host"); | 60 | action->tooltip = _("Connect to host"); |
| 61 | 61 |
src/objects/window/actions/filetransfer.c
| @@ -38,7 +38,7 @@ | @@ -38,7 +38,7 @@ | ||
| 38 | 38 | ||
| 39 | V3270SimpleAction * action = v3270_simple_action_new(); | 39 | V3270SimpleAction * action = v3270_simple_action_new(); |
| 40 | 40 | ||
| 41 | - action->parent.activate = activate; | 41 | + action->activate = activate; |
| 42 | action->group.id = LIB3270_ACTION_GROUP_ONLINE; | 42 | action->group.id = LIB3270_ACTION_GROUP_ONLINE; |
| 43 | action->name = "file.transfer"; | 43 | action->name = "file.transfer"; |
| 44 | action->icon_name = "drive-harddisk"; | 44 | action->icon_name = "drive-harddisk"; |
src/objects/window/window.c
| @@ -429,19 +429,34 @@ | @@ -429,19 +429,34 @@ | ||
| 429 | GtkWidget * terminal = pw3270_application_window_new_tab(GTK_WIDGET(window), session_file); | 429 | GtkWidget * terminal = pw3270_application_window_new_tab(GTK_WIDGET(window), session_file); |
| 430 | 430 | ||
| 431 | // Create property actions | 431 | // Create property actions |
| 432 | - static const gchar * properties[] = { | ||
| 433 | - "model-number", | ||
| 434 | - "font-family", | ||
| 435 | - "dynamic-font-spacing", | ||
| 436 | - "trace", | 432 | + static const struct Property { |
| 433 | + LIB3270_ACTION_GROUP group; | ||
| 434 | + const gchar *name; | ||
| 435 | + } properties[] = { | ||
| 436 | + { | ||
| 437 | + .name = "model-number", | ||
| 438 | + .group = LIB3270_ACTION_GROUP_OFFLINE | ||
| 439 | + }, | ||
| 440 | + { | ||
| 441 | + .name = "font-family", | ||
| 442 | + .group = LIB3270_ACTION_GROUP_NONE | ||
| 443 | + }, | ||
| 444 | + { | ||
| 445 | + .name = "dynamic-font-spacing", | ||
| 446 | + .group = LIB3270_ACTION_GROUP_NONE | ||
| 447 | + }, | ||
| 448 | + { | ||
| 449 | + .name = "trace", | ||
| 450 | + .group = LIB3270_ACTION_GROUP_NONE | ||
| 451 | + }, | ||
| 437 | }; | 452 | }; |
| 438 | 453 | ||
| 439 | for(ix = 0; ix < G_N_ELEMENTS(properties); ix++) { | 454 | for(ix = 0; ix < G_N_ELEMENTS(properties); ix++) { |
| 440 | 455 | ||
| 441 | - GAction * action = G_ACTION(v3270_property_action_new(terminal,properties[ix])); | 456 | + GAction * action = G_ACTION(v3270_property_action_new(terminal,properties[ix].name,properties[ix].group)); |
| 442 | 457 | ||
| 443 | if(!g_action_get_name(action)) { | 458 | if(!g_action_get_name(action)) { |
| 444 | - g_warning("Window property action %s is unnamed",properties[ix]); | 459 | + g_warning("Window property action %s is unnamed",properties[ix].name); |
| 445 | } else { | 460 | } else { |
| 446 | g_action_map_add_action(G_ACTION_MAP(window),action); | 461 | g_action_map_add_action(G_ACTION_MAP(window),action); |
| 447 | } | 462 | } |
| @@ -486,6 +501,8 @@ | @@ -486,6 +501,8 @@ | ||
| 486 | 501 | ||
| 487 | void pw3270_application_window_set_active_terminal(GtkWidget *widget, GtkWidget *terminal) { | 502 | void pw3270_application_window_set_active_terminal(GtkWidget *widget, GtkWidget *terminal) { |
| 488 | 503 | ||
| 504 | + size_t ix; | ||
| 505 | + | ||
| 489 | pw3270ApplicationWindow * window = PW3270_APPLICATION_WINDOW(widget); | 506 | pw3270ApplicationWindow * window = PW3270_APPLICATION_WINDOW(widget); |
| 490 | 507 | ||
| 491 | if(window->terminal == terminal) | 508 | if(window->terminal == terminal) |
| @@ -512,23 +529,42 @@ | @@ -512,23 +529,42 @@ | ||
| 512 | 529 | ||
| 513 | } | 530 | } |
| 514 | 531 | ||
| 515 | - // Update actions | ||
| 516 | - size_t ix; | ||
| 517 | - gchar ** actions = g_action_group_list_actions(G_ACTION_GROUP(window)); | 532 | + // Update window actions |
| 533 | + { | ||
| 534 | + gchar ** actions = g_action_group_list_actions(G_ACTION_GROUP(window)); | ||
| 518 | 535 | ||
| 519 | - for(ix = 0; actions[ix]; ix++) { | 536 | + for(ix = 0; actions[ix]; ix++) { |
| 520 | 537 | ||
| 521 | -// debug("%s",actions[ix]); | 538 | + GAction * action = g_action_map_lookup_action(G_ACTION_MAP(window), actions[ix]); |
| 522 | 539 | ||
| 523 | - GAction * action = g_action_map_lookup_action(G_ACTION_MAP(window), actions[ix]); | 540 | + if(action && V3270_IS_ACTION(action)) { |
| 541 | + v3270_action_set_terminal_widget(action,terminal); | ||
| 542 | + } | ||
| 524 | 543 | ||
| 525 | - if(action && V3270_IS_ACTION(action)) { | ||
| 526 | - v3270_action_set_terminal_widget(action,terminal); | ||
| 527 | } | 544 | } |
| 528 | 545 | ||
| 546 | + g_strfreev(actions); | ||
| 529 | } | 547 | } |
| 530 | 548 | ||
| 531 | - g_strfreev(actions); | 549 | + // Update application actions |
| 550 | + { | ||
| 551 | + GtkApplication * application = GTK_APPLICATION(gtk_window_get_application(GTK_WINDOW(window))); | ||
| 552 | + | ||
| 553 | + if(application) { | ||
| 554 | + | ||
| 555 | + gchar ** actions = g_action_group_list_actions(G_ACTION_GROUP(application)); | ||
| 556 | + | ||
| 557 | + for(ix = 0; actions[ix]; ix++) { | ||
| 558 | + | ||
| 559 | + GAction * action = g_action_map_lookup_action(G_ACTION_MAP(application), actions[ix]); | ||
| 560 | + if(action && V3270_IS_ACTION(action)) { | ||
| 561 | + v3270_action_set_terminal_widget(action,terminal); | ||
| 562 | + } | ||
| 563 | + | ||
| 564 | + } | ||
| 565 | + | ||
| 566 | + } | ||
| 567 | + } | ||
| 532 | 568 | ||
| 533 | } | 569 | } |
| 534 | 570 |