Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 01 Feb 2006 18:59:52 +0200
From:      Panagiotis Astithas <past@ebs.gr>
To:        Stijn Hoop <stijn@win.tue.nl>, Anish Mistry <mistry.7@osu.edu>, Mark Kane <mark@mkproductions.org>, gnome@freebsd.org, Frank Staals <frankstaals@gmx.net>, freebsd-questions@freebsd.org, Simon Barner <barner@freebsd.org>
Subject:   Re: Firefox 1.5
Message-ID:  <43E0E908.7010603@ebs.gr>
In-Reply-To: <20060128203524.GB68709@pcwin002.win.tue.nl>
References:  <a8b370910601262206p2dea460fj87b097fadaa3372b@mail.gmail.com>	<200601271218.00377.mistry.7@osu.edu>	<43DA7946.6000100@mkproductions.org>	<200601271850.21187.mistry.7@osu.edu>	<20060128163501.GA68709@pcwin002.win.tue.nl> <20060128203524.GB68709@pcwin002.win.tue.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
Stijn Hoop wrote:
> For those interested, paste the inline patch below in
> 
> /usr/ports/www/firefox/files/patch-bugzilla305970
> 
> And reinstall your firefox. Thanks again, Anish, it certainly seemed to
> help me!
> 
> --Stijn
> 
> --- widget/src/gtk2/nsWindow.cpp.orig	Thu Aug 18 10:11:23 2005
> +++ widget/src/gtk2/nsWindow.cpp	Sat Jan 28 18:34:03 2006
> @@ -148,9 +148,9 @@
>                                             GdkEventVisibility *event);
>  static gboolean window_state_event_cb     (GtkWidget *widget,
>                                             GdkEventWindowState *event);
> -static void     style_set_cb              (GtkWidget *widget,
> -                                           GtkStyle *previous_style,
> -                                           gpointer data);
> +static void     theme_changed_cb          (GtkSettings *settings,
> +                                           GParamSpec *pspec,
> +                                           nsWindow *data);
>  #ifdef __cplusplus
>  extern "C" {
>  #endif /* __cplusplus */
> @@ -372,6 +372,10 @@
>      mIsDestroyed = PR_TRUE;
>      mCreated = PR_FALSE;
>  
> +    g_signal_handlers_disconnect_by_func(gtk_settings_get_default(),
> +                                         (gpointer)G_CALLBACK(theme_changed_cb),
> +                                         this);
> +
>      // ungrab if required
>      nsCOMPtr<nsIWidget> rollupWidget = do_QueryReferent(gRollupWindow);
>      if (NS_STATIC_CAST(nsIWidget *, this) == rollupWidget.get()) {
> @@ -2434,8 +2438,16 @@
>                           G_CALLBACK(delete_event_cb), NULL);
>          g_signal_connect(G_OBJECT(mShell), "window_state_event",
>                           G_CALLBACK(window_state_event_cb), NULL);
> -        g_signal_connect(G_OBJECT(mShell), "style_set",
> -                         G_CALLBACK(style_set_cb), NULL);
> +
> +        g_signal_connect_after(gtk_settings_get_default(),
> +                               "notify::gtk-theme-name",
> +                               G_CALLBACK(theme_changed_cb), this);
> +        g_signal_connect_after(gtk_settings_get_default(),
> +                               "notify::gtk-key-theme-name",
> +                               G_CALLBACK(theme_changed_cb), this);
> +        g_signal_connect_after(gtk_settings_get_default(),
> +                               "notify::gtk-font-name",
> +                               G_CALLBACK(theme_changed_cb), this);
>      }
>  
>      if (mContainer) {
> @@ -3916,11 +3928,9 @@
>  
>  /* static */
>  void
> -style_set_cb (GtkWidget *widget, GtkStyle *previous_style, gpointer data)
> +theme_changed_cb (GtkSettings *settings, GParamSpec *pspec, nsWindow *data)
>  {
> -    nsWindow *window = get_window_for_gtk_widget(widget);
> -    if (window)
> -        window->ThemeChanged();
> +    data->ThemeChanged();
>  }
>  
>  //////////////////////////////////////////////////////////////////////


This has made firefox a pleasure to use again for me.

Thanks,

Panagiotis



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43E0E908.7010603>