Commit 56f786372924e2cf745c4fc2ed6983a775867e0f
1 parent
122c9194
Exists in
master
and in
5 other branches
Ajustando comportamento das "actions" que parece ter mudado num dos últimos updates do gtk.
Showing
4 changed files
with
30 additions
and
23 deletions
Show diff stats
src/include/pw3270.h
| @@ -89,6 +89,9 @@ | @@ -89,6 +89,9 @@ | ||
| 89 | 89 | ||
| 90 | LIB3270_EXPORT void pw3270_set_host_charset(GtkWidget *widget, const gchar *name); | 90 | LIB3270_EXPORT void pw3270_set_host_charset(GtkWidget *widget, const gchar *name); |
| 91 | 91 | ||
| 92 | + LIB3270_EXPORT void pw3270_set_action_state(GtkAction *action, gboolean on); | ||
| 93 | + | ||
| 94 | + | ||
| 92 | typedef enum pw3270_src | 95 | typedef enum pw3270_src |
| 93 | { | 96 | { |
| 94 | PW3270_SRC_ALL, /**< Screen contents */ | 97 | PW3270_SRC_ALL, /**< Screen contents */ |
src/plugins/rx3270/pluginmain.cc
| @@ -436,12 +436,7 @@ extern "C" | @@ -436,12 +436,7 @@ extern "C" | ||
| 436 | return; | 436 | return; |
| 437 | } | 437 | } |
| 438 | 438 | ||
| 439 | -#if GTK_CHECK_VERSION(3,10,0) | ||
| 440 | - g_simple_action_set_enabled(G_SIMPLE_ACTION(action),FALSE); | ||
| 441 | -#else | ||
| 442 | - gtk_action_set_sensitive(action,FALSE); | ||
| 443 | -#endif // GTK(3,10) | ||
| 444 | - | 439 | + pw3270_set_action_state(action,FALSE); |
| 445 | 440 | ||
| 446 | if(filename) | 441 | if(filename) |
| 447 | { | 442 | { |
| @@ -484,11 +479,7 @@ extern "C" | @@ -484,11 +479,7 @@ extern "C" | ||
| 484 | 479 | ||
| 485 | } | 480 | } |
| 486 | 481 | ||
| 487 | -#if GTK_CHECK_VERSION(3,10,0) | ||
| 488 | - g_simple_action_set_enabled(G_SIMPLE_ACTION(action),TRUE); | ||
| 489 | -#else | ||
| 490 | - gtk_action_set_sensitive(action,TRUE); | ||
| 491 | -#endif // GTK(3,10) | 482 | + pw3270_set_action_state(action,TRUE); |
| 492 | 483 | ||
| 493 | #if GTK_CHECK_VERSION(2,32,0) | 484 | #if GTK_CHECK_VERSION(2,32,0) |
| 494 | g_mutex_unlock(&mutex); | 485 | g_mutex_unlock(&mutex); |
src/pw3270/tools.c
| @@ -223,3 +223,24 @@ LIB3270_EXPORT void pw3270_set_host_charset(GtkWidget *widget, const gchar *name | @@ -223,3 +223,24 @@ LIB3270_EXPORT void pw3270_set_host_charset(GtkWidget *widget, const gchar *name | ||
| 223 | gtk_widget_destroy(dialog); | 223 | gtk_widget_destroy(dialog); |
| 224 | 224 | ||
| 225 | } | 225 | } |
| 226 | + | ||
| 227 | +LIB3270_EXPORT void pw3270_set_action_state(GtkAction *action, gboolean on) | ||
| 228 | +{ | ||
| 229 | + | ||
| 230 | + if(!action) | ||
| 231 | + { | ||
| 232 | + return; | ||
| 233 | + } | ||
| 234 | +#if GTK_CHECK_VERSION(3,10,0) | ||
| 235 | + else if(G_IS_SIMPLE_ACTION(action)) | ||
| 236 | + { | ||
| 237 | + g_simple_action_set_enabled(G_SIMPLE_ACTION(action),FALSE); | ||
| 238 | + } | ||
| 239 | +#endif // GTK(3,10) | ||
| 240 | + else | ||
| 241 | + { | ||
| 242 | + gtk_action_set_sensitive(action,FALSE); | ||
| 243 | + } | ||
| 244 | + | ||
| 245 | + } | ||
| 246 | + |
src/pw3270/window.c
| @@ -416,17 +416,9 @@ | @@ -416,17 +416,9 @@ | ||
| 416 | gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget),menu); | 416 | gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget),menu); |
| 417 | } | 417 | } |
| 418 | 418 | ||
| 419 | - static void setSensitive(GtkAction *action, gboolean on) | ||
| 420 | - { | ||
| 421 | - if(action) | ||
| 422 | - { | ||
| 423 | - gtk_action_set_sensitive(action,on); | ||
| 424 | - } | ||
| 425 | - } | ||
| 426 | - | ||
| 427 | static void pastenext(GtkWidget *widget, gboolean on, GtkAction **action) | 419 | static void pastenext(GtkWidget *widget, gboolean on, GtkAction **action) |
| 428 | { | 420 | { |
| 429 | - setSensitive(action[ACTION_PASTENEXT],on); | 421 | + pw3270_set_action_state(action[ACTION_PASTENEXT],on); |
| 430 | } | 422 | } |
| 431 | 423 | ||
| 432 | static void disconnected(GtkWidget *terminal, GtkWidget * window) | 424 | static void disconnected(GtkWidget *terminal, GtkWidget * window) |
| @@ -485,7 +477,7 @@ | @@ -485,7 +477,7 @@ | ||
| 485 | { | 477 | { |
| 486 | GtkAction **action = (GtkAction **) g_object_get_data(G_OBJECT(widget),"named_actions"); | 478 | GtkAction **action = (GtkAction **) g_object_get_data(G_OBJECT(widget),"named_actions"); |
| 487 | gtk_action_group_set_sensitive(group[ACTION_GROUP_SELECTION],on); | 479 | gtk_action_group_set_sensitive(group[ACTION_GROUP_SELECTION],on); |
| 488 | - setSensitive(action[ACTION_RESELECT],!on); | 480 | + pw3270_set_action_state(action[ACTION_RESELECT],!on); |
| 489 | } | 481 | } |
| 490 | 482 | ||
| 491 | static gboolean popup_menu(GtkWidget *widget, gboolean selected, gboolean online, GdkEventButton *event, GtkWidget **popup) | 483 | static gboolean popup_menu(GtkWidget *widget, gboolean selected, gboolean online, GdkEventButton *event, GtkWidget **popup) |
| @@ -647,11 +639,11 @@ | @@ -647,11 +639,11 @@ | ||
| 647 | 639 | ||
| 648 | if(action[ACTION_PASTENEXT]) | 640 | if(action[ACTION_PASTENEXT]) |
| 649 | { | 641 | { |
| 650 | - setSensitive(action[ACTION_PASTENEXT],FALSE); | 642 | + pw3270_set_action_state(action[ACTION_PASTENEXT],FALSE); |
| 651 | g_signal_connect(widget->terminal,"pastenext",G_CALLBACK(pastenext),action); | 643 | g_signal_connect(widget->terminal,"pastenext",G_CALLBACK(pastenext),action); |
| 652 | } | 644 | } |
| 653 | 645 | ||
| 654 | - setSensitive(action[ACTION_RESELECT],FALSE); | 646 | + pw3270_set_action_state(action[ACTION_RESELECT],FALSE); |
| 655 | 647 | ||
| 656 | // Connect action signals | 648 | // Connect action signals |
| 657 | g_signal_connect(widget->terminal,"disconnected",G_CALLBACK(disconnected),widget); | 649 | g_signal_connect(widget->terminal,"disconnected",G_CALLBACK(disconnected),widget); |