Commit 5c6b307f3a772bfde2b118c60d4cc6d9e0a26a45
1 parent
988afbcb
Exists in
master
and in
3 other branches
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,6 +41,7 @@ | ||
| 41 | #include <v3270/settings.h> | 41 | #include <v3270/settings.h> |
| 42 | #include <v3270/actions.h> | 42 | #include <v3270/actions.h> |
| 43 | #include <v3270/print.h> | 43 | #include <v3270/print.h> |
| 44 | + #include <lib3270/os.h> | ||
| 44 | 45 | ||
| 45 | struct SessionDescriptor | 46 | struct SessionDescriptor |
| 46 | { | 47 | { |
| @@ -234,24 +235,28 @@ | @@ -234,24 +235,28 @@ | ||
| 234 | 235 | ||
| 235 | static GtkResponseType load_popup_response(v3270 G_GNUC_UNUSED(*widget), const gchar *popup_name, struct SessionDescriptor * session) { | 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 | return (GtkResponseType) g_key_file_get_integer(session->key_file,"dialogs",popup_name,NULL); | 239 | return (GtkResponseType) g_key_file_get_integer(session->key_file,"dialogs",popup_name,NULL); |
| 242 | 240 | ||
| 243 | #ifdef _WIN32 | 241 | #ifdef _WIN32 |
| 244 | { | 242 | { |
| 245 | // Windows - Check predefined responses on system registry. | 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 | #endif // _WIN32 | 257 | #endif // _WIN32 |
| 253 | 258 | ||
| 254 | - return GTK_RESPONSE_NONE; | 259 | + return session->key_file ? GTK_RESPONSE_NONE : 0; |
| 255 | } | 260 | } |
| 256 | 261 | ||
| 257 | static gboolean save_popup_response(GtkWidget *widget, const gchar *popup_name, GtkResponseType response, struct SessionDescriptor * session) { | 262 | static gboolean save_popup_response(GtkWidget *widget, const gchar *popup_name, GtkResponseType response, struct SessionDescriptor * session) { |