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 | 89 | |
90 | 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 | 95 | typedef enum pw3270_src |
93 | 96 | { |
94 | 97 | PW3270_SRC_ALL, /**< Screen contents */ | ... | ... |
src/plugins/rx3270/pluginmain.cc
... | ... | @@ -436,12 +436,7 @@ extern "C" |
436 | 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 | 441 | if(filename) |
447 | 442 | { |
... | ... | @@ -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 | 484 | #if GTK_CHECK_VERSION(2,32,0) |
494 | 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 | 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 | 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 | 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 | 424 | static void disconnected(GtkWidget *terminal, GtkWidget * window) |
... | ... | @@ -485,7 +477,7 @@ |
485 | 477 | { |
486 | 478 | GtkAction **action = (GtkAction **) g_object_get_data(G_OBJECT(widget),"named_actions"); |
487 | 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 | 483 | static gboolean popup_menu(GtkWidget *widget, gboolean selected, gboolean online, GdkEventButton *event, GtkWidget **popup) |
... | ... | @@ -647,11 +639,11 @@ |
647 | 639 | |
648 | 640 | if(action[ACTION_PASTENEXT]) |
649 | 641 | { |
650 | - setSensitive(action[ACTION_PASTENEXT],FALSE); | |
642 | + pw3270_set_action_state(action[ACTION_PASTENEXT],FALSE); | |
651 | 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 | 648 | // Connect action signals |
657 | 649 | g_signal_connect(widget->terminal,"disconnected",G_CALLBACK(disconnected),widget); | ... | ... |