diff --git a/ChangeLog b/ChangeLog index 9bb3559e92..3cbf8fa93d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2000-04-14 Tor Lillqvist + + * gtk/gtksignal.c: (Win32:) Export the gtk_private_signals and + gtk_private_n_signals variables, they are used by some software, + sigh. + + * gtk/gtkrc.c (get_gtk_sysconf_directory): (Win32:) Fetch the + installation directory from the Registry, where the installer + should have put it. + Fri Apr 7 17:19:27 2000 Owen Taylor * gdk/x11/Makefile.am: Fix problem with installation directory for diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 9bb3559e92..3cbf8fa93d 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,13 @@ +2000-04-14 Tor Lillqvist + + * gtk/gtksignal.c: (Win32:) Export the gtk_private_signals and + gtk_private_n_signals variables, they are used by some software, + sigh. + + * gtk/gtkrc.c (get_gtk_sysconf_directory): (Win32:) Fetch the + installation directory from the Registry, where the installer + should have put it. + Fri Apr 7 17:19:27 2000 Owen Taylor * gdk/x11/Makefile.am: Fix problem with installation directory for diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 9bb3559e92..3cbf8fa93d 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,13 @@ +2000-04-14 Tor Lillqvist + + * gtk/gtksignal.c: (Win32:) Export the gtk_private_signals and + gtk_private_n_signals variables, they are used by some software, + sigh. + + * gtk/gtkrc.c (get_gtk_sysconf_directory): (Win32:) Fetch the + installation directory from the Registry, where the installer + should have put it. + Fri Apr 7 17:19:27 2000 Owen Taylor * gdk/x11/Makefile.am: Fix problem with installation directory for diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 9bb3559e92..3cbf8fa93d 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,13 @@ +2000-04-14 Tor Lillqvist + + * gtk/gtksignal.c: (Win32:) Export the gtk_private_signals and + gtk_private_n_signals variables, they are used by some software, + sigh. + + * gtk/gtkrc.c (get_gtk_sysconf_directory): (Win32:) Fetch the + installation directory from the Registry, where the installer + should have put it. + Fri Apr 7 17:19:27 2000 Owen Taylor * gdk/x11/Makefile.am: Fix problem with installation directory for diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 9bb3559e92..3cbf8fa93d 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,13 @@ +2000-04-14 Tor Lillqvist + + * gtk/gtksignal.c: (Win32:) Export the gtk_private_signals and + gtk_private_n_signals variables, they are used by some software, + sigh. + + * gtk/gtkrc.c (get_gtk_sysconf_directory): (Win32:) Fetch the + installation directory from the Registry, where the installer + should have put it. + Fri Apr 7 17:19:27 2000 Owen Taylor * gdk/x11/Makefile.am: Fix problem with installation directory for diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 9bb3559e92..3cbf8fa93d 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,13 @@ +2000-04-14 Tor Lillqvist + + * gtk/gtksignal.c: (Win32:) Export the gtk_private_signals and + gtk_private_n_signals variables, they are used by some software, + sigh. + + * gtk/gtkrc.c (get_gtk_sysconf_directory): (Win32:) Fetch the + installation directory from the Registry, where the installer + should have put it. + Fri Apr 7 17:19:27 2000 Owen Taylor * gdk/x11/Makefile.am: Fix problem with installation directory for diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 9bb3559e92..3cbf8fa93d 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,13 @@ +2000-04-14 Tor Lillqvist + + * gtk/gtksignal.c: (Win32:) Export the gtk_private_signals and + gtk_private_n_signals variables, they are used by some software, + sigh. + + * gtk/gtkrc.c (get_gtk_sysconf_directory): (Win32:) Fetch the + installation directory from the Registry, where the installer + should have put it. + Fri Apr 7 17:19:27 2000 Owen Taylor * gdk/x11/Makefile.am: Fix problem with installation directory for diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c index cf97c48ae8..aed1588f01 100644 --- a/gtk/gtkrc.c +++ b/gtk/gtkrc.c @@ -251,22 +251,38 @@ static GtkImageLoader image_loader = NULL; gchar * get_gtk_sysconf_directory (void) { + static gboolean been_here = FALSE; static gchar gtk_sysconf_dir[200]; gchar win_dir[100]; + HKEY reg_key = NULL; + DWORD type; + DWORD nbytes = sizeof (gtk_sysconf_dir); + + if (been_here) + return gtk_sysconf_dir; + + been_here = TRUE; + + if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, "Software\\GNU\\GTk+", 0, + KEY_QUERY_VALUE, ®_key) != ERROR_SUCCESS + || RegQueryValueEx (reg_key, "InstallationDirectory", 0, + &type, gtk_sysconf_dir, &nbytes) != ERROR_SUCCESS + || type != REG_SZ) + { + /* Uh oh. Use the old hard-coded %WinDir%\GTk+ value */ + GetWindowsDirectory (win_dir, sizeof (win_dir)); + sprintf (gtk_sysconf_dir, "%s\\gtk+", win_dir); + } + + if (reg_key != NULL) + RegCloseKey (reg_key); - GetWindowsDirectory (win_dir, sizeof (win_dir)); - sprintf (gtk_sysconf_dir, "%s\\gtk+", win_dir); return gtk_sysconf_dir; } static gchar * get_themes_directory (void) { - /* We really should fetch this from the Registry. The GIMP - * installation program stores the Themes installation - * directory in HKLM\Software\GNU\GTk+\Themes\InstallDirectory. - * Later. - */ static gchar themes_dir[200]; sprintf (themes_dir, "%s\\themes", get_gtk_sysconf_directory ()); diff --git a/gtk/gtksignal.c b/gtk/gtksignal.c index 97ea7cf1d4..00326f483d 100644 --- a/gtk/gtksignal.c +++ b/gtk/gtksignal.c @@ -177,8 +177,13 @@ static GtkSignalDestroy global_destroy_notify = NULL; static guint gtk_handler_id = 1; static guint gtk_handler_quark = 0; static GHashTable *gtk_signal_hash_table = NULL; - GtkSignal *_gtk_private_signals = NULL; - guint _gtk_private_n_signals = 0; +#ifdef G_OS_WIN32 +#define EXPORT __declspec(dllexport) +#else +#define EXPORT +#endif +EXPORT GtkSignal *_gtk_private_signals = NULL; +EXPORT guint _gtk_private_n_signals = 0; static GMemChunk *gtk_signal_hash_mem_chunk = NULL; static GMemChunk *gtk_disconnect_info_mem_chunk = NULL; static GtkHandler *gtk_handler_free_list = NULL;