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); |