Commit b0c728d35ba559726c6c0059d2ff40832dbceee6

Authored by perry.werneck@gmail.com
1 parent d5add747

Salvando tamanho do papel no registry, retirando mensagems de erro na finalizacao

Showing 2 changed files with 24 additions and 3 deletions   Show diff stats
src/gtk/mainwindow.c
@@ -117,6 +117,12 @@ @@ -117,6 +117,12 @@
117 return 0; 117 return 0;
118 } 118 }
119 119
  120 + static gboolean window_destroy(GtkWidget *window, GtkWidget *widget)
  121 + {
  122 + if(widget)
  123 + v3270_disconnect(widget);
  124 + }
  125 +
120 static void disconnected(GtkWidget *widget, GtkActionGroup **group) 126 static void disconnected(GtkWidget *widget, GtkActionGroup **group)
121 { 127 {
122 gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],FALSE); 128 gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],FALSE);
@@ -333,6 +339,7 @@ @@ -333,6 +339,7 @@
333 339
334 // Connect window signals 340 // Connect window signals
335 g_signal_connect(window,"window_state_event",G_CALLBACK(window_state_event),terminal); 341 g_signal_connect(window,"window_state_event",G_CALLBACK(window_state_event),terminal);
  342 + g_signal_connect(window,"destroy",G_CALLBACK(window_destroy),terminal);
336 343
337 // Connect widget signals 344 // Connect widget signals
338 g_signal_connect(terminal,"toggle_changed",G_CALLBACK(toggle_changed),window); 345 g_signal_connect(terminal,"toggle_changed",G_CALLBACK(toggle_changed),window);
src/gtk/print.c
@@ -211,10 +211,24 @@ static gchar * enum_to_string(GType type, guint enum_value) @@ -211,10 +211,24 @@ static gchar * enum_to_string(GType type, guint enum_value)
211 211
212 if(RegCreateKeyEx(hKey,"papersize",0,NULL,REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,NULL,&hPaperSize,&disp) == ERROR_SUCCESS) 212 if(RegCreateKeyEx(hKey,"papersize",0,NULL,REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,NULL,&hPaperSize,&disp) == ERROR_SUCCESS)
213 { 213 {
214 - GtkPaperSize *paper_size = gtk_page_setup_get_paper_size (setup);  
215 - if(paper_size) 214 + GtkPaperSize *size = gtk_page_setup_get_paper_size(setup);
  215 + if(size)
216 { 216 {
217 - #warning Implement it 217 + // From http://git.gnome.org/browse/gtk+/tree/gtk/gtkpapersize.c
  218 + const gchar *name = gtk_paper_size_get_name(size);
  219 + const gchar *display_name = gtk_paper_size_get_display_name(size);
  220 + const gchar *ppd_name = gtk_paper_size_get_ppd_name(size);
  221 +
  222 + if (ppd_name != NULL)
  223 + save_string(hPaperSize,"PPDName", ppd_name);
  224 + else
  225 + save_string(hPaperSize,"Name", name);
  226 +
  227 + if (display_name)
  228 + save_string(hPaperSize,"DisplayName", display_name);
  229 +
  230 + save_double(hPaperSize, "Width", gtk_paper_size_get_width (size, GTK_UNIT_MM));
  231 + save_double(hPaperSize, "Height", gtk_paper_size_get_height (size, GTK_UNIT_MM));
218 } 232 }
219 RegCloseKey(hPaperSize); 233 RegCloseKey(hPaperSize);
220 } 234 }