Commit 5c6b307f3a772bfde2b118c60d4cc6d9e0a26a45

Authored by Perry Werneck
1 parent 988afbcb

Adding option to disable dialogs from windows registry.

Showing 1 changed file with 13 additions and 8 deletions   Show diff stats
src/objects/window/terminal.c
... ... @@ -41,6 +41,7 @@
41 41 #include <v3270/settings.h>
42 42 #include <v3270/actions.h>
43 43 #include <v3270/print.h>
  44 + #include <lib3270/os.h>
44 45  
45 46 struct SessionDescriptor
46 47 {
... ... @@ -234,24 +235,28 @@
234 235  
235 236 static GtkResponseType load_popup_response(v3270 G_GNUC_UNUSED(*widget), const gchar *popup_name, struct SessionDescriptor * session) {
236 237  
237   - if(!session->key_file)
238   - return 0;
239   -
240   - if(g_key_file_has_key(session->key_file,"dialogs",popup_name,NULL))
  238 + if(session->key_file && g_key_file_has_key(session->key_file,"dialogs",popup_name,NULL))
241 239 return (GtkResponseType) g_key_file_get_integer(session->key_file,"dialogs",popup_name,NULL);
242 240  
243 241 #ifdef _WIN32
244 242 {
245 243 // Windows - Check predefined responses on system registry.
  244 + lib3270_auto_cleanup(HKEY) hKey;
246 245  
247   -#ifndef DEBUG
248   - #error parei aqui.
249   -#endif // DEBUG
  246 + if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,G_STRINGIFY(PRODUCT_NAME)"\\dialogs",0,KEY_READ,&hKey) == ERROR_SUCCESS) {
  247 +
  248 + DWORD val = 0;
  249 + DWORD cbData = sizeof(DWORD);
250 250  
  251 + if(RegQueryValueEx(hKey, popup_name, NULL, NULL, (LPBYTE) &val, &cbData) == ERROR_SUCCESS) {
  252 + return (GtkResponseType) val;
  253 + }
  254 +
  255 + }
251 256 }
252 257 #endif // _WIN32
253 258  
254   - return GTK_RESPONSE_NONE;
  259 + return session->key_file ? GTK_RESPONSE_NONE : 0;
255 260 }
256 261  
257 262 static gboolean save_popup_response(GtkWidget *widget, const gchar *popup_name, GtkResponseType response, struct SessionDescriptor * session) {
... ...