From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Frans Oilinki Newsgroups: gmane.emacs.devel Subject: GTK3 deprecation fix (GtkFontSelection replaced with GtkFontChooser) Date: Fri, 10 Aug 2012 17:35:28 +0800 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1344591366 4824 80.91.229.3 (10 Aug 2012 09:36:06 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 10 Aug 2012 09:36:06 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Aug 10 11:36:05 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SzldN-0004qF-TO for ged-emacs-devel@m.gmane.org; Fri, 10 Aug 2012 11:35:58 +0200 Original-Received: from localhost ([::1]:48951 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SzldN-0004ww-56 for ged-emacs-devel@m.gmane.org; Fri, 10 Aug 2012 05:35:57 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:46459) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SzldK-0004wY-9o for emacs-devel@gnu.org; Fri, 10 Aug 2012 05:35:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SzldH-0003PK-E0 for emacs-devel@gnu.org; Fri, 10 Aug 2012 05:35:54 -0400 Original-Received: from mail-qa0-f48.google.com ([209.85.216.48]:49305) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SzldH-0003OS-8i for emacs-devel@gnu.org; Fri, 10 Aug 2012 05:35:51 -0400 Original-Received: by qady1 with SMTP id y1so935668qad.0 for ; Fri, 10 Aug 2012 02:35:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=WXtTU3x6QWp/sspS7fIQ69MhRBQ7npSOQaW3X4WY0Bc=; b=up62jMG2IqAUZwV926rIWsPueTj9+tbSUgAGhbcBXcNhtW51kNnl3rtGO2cBnsAueH RKMMt+ItrabUBVgby6V0lSP72xRSi63/gaIa5jmUA4FJzzZj8Heo5HlX7E13+6xo/uC/ loUd/prFqn3GOHbwdobQ12Br8jakQVeJjrkNkOVGStdp4V+wamluiMHVzimY/ji4yZPP dX0Wl5Hq/QZomNRlWmwI6NwnuvwKuI85frOSPrCbEVGw+oukhPiZ74QixMZjJeLaxx0V s1XjoOJKWGKXpyuSqefgdqOOHYCTjxhiO5kCjjGxKuETQbG4DGzoY1Ji3NHbpjktRYF3 e0UQ== Original-Received: by 10.229.137.21 with SMTP id u21mr1121435qct.142.1344591349872; Fri, 10 Aug 2012 02:35:49 -0700 (PDT) Original-Received: by 10.229.91.78 with HTTP; Fri, 10 Aug 2012 02:35:28 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.216.48 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:152399 Archived-At: Hello, I just tried building the newest emacs master branch (git cloned repository), running Ubuntu 12.04 GNU/Linux system. I made a mistake of adding option "--enable-gcc-warnings" to "./configure" (not anticipating it would add option -Werror :-). The complete list of options to ./configure: "--prefix=3D/usr/local --program-suffix=3D-git.master --enable-check-lisp-object-type --enable-link-time-optimization --enable-gcc-warnings --with-x-toolkit=3Dgtk3 --with-x". The file "src/gtkutil.c" gave the following warning: gcc -std=3Dgnu99 -c -Demacs -I. -I/home/fo/work/OpenSource/Emacs/emacs/src -I../lib -I/home/fo/work/OpenSource/Emacs/emacs/src/../lib -pthread -isystem /usr/include/gtk-3.0 -isystem /usr/include/pango-1.0 -isystem /usr/include/gio-unix-2.0/ -isystem /usr/include/atk-1.0 -isystem /usr/include/cairo -isystem /usr/include/gdk-pixbuf-2.0 -isystem /usr/include/freetype2 -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/libpng12 -isystem /usr/include/freetype2 -isystem /usr/include/alsa -pthread -isystem /usr/include/librsvg-2.0 -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/gdk-pixbuf-2.0 -isystem /usr/include/cairo -isystem /usr/include/libpng12 -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -fopenmp -isystem /usr/include/ImageMagick -isystem /usr/include/libxml2 -isystem /usr/include/dbus-1.0 -isystem /usr/lib/x86_64-linux-gnu/dbus-1.0/include -pthread -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -isystem /usr/include/gconf/2 -isystem /usr/include/dbus-1.0 -isystem /usr/lib/x86_64-linux-gnu/dbus-1.0/include -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/freetype2 -isystem /usr/include/freetype2 -MMD -MF deps/gtkutil.d -MP -isystem /usr/include/p11-kit-1 -Wall -W -Wformat-y2k -Wformat-security -Winit-self -Wmissing-include-dirs -Wunused -Wunknown-pragmas -Wstrict-aliasing -Wdeclaration-after-statement -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute -Wpacked -Winvalid-pch -Wvolatile-register-var -Wdisabled-optimization -Wbuiltin-macro-redefined -Wmudflap -Wpacked-bitfield-compat -Wattributes -Wcoverage-mismatch -Wunused-macros -Wabi -Wcpp -Wdeprecated -Wdeprecated-declarations -Wdiv-by-zero -Wdouble-promotion -Wendif-labels -Wextra -Wformat-contains-nul -Wformat-extra-args -Wformat-zero-length -Wformat=3D2 -Wmultichar -Wnormalized=3Dnfc -Woverflow -Wpointer-to-int-cast -Wpragmas -Wsuggest-attribute=3Dconst -Wsuggest-attribute=3Dnoreturn -Wtrampolines -Wno-missing-field-initializers -Wno-missing-field-initializers -Wno-sign-compare -Wno-type-limits -Wno-switch -Wno-unused-parameter -Wno-format-nonliteral -Wno-logical-op -fdiagnostics-show-option -funit-at-a-time -Werror -g -O2 -flto=3D1 gtkutil.c gtkutil.c: In function =E2=80=98xg_get_font_name=E2=80=99: gtkutil.c:2003:3: error: =E2=80=98gtk_font_selection_dialog_new=E2=80= =99 is deprecated (declared at /usr/include/gtk-3.0/gtk/deprecated/gtkfontsel.h:142): Use 'GtkFontChooser' instead [-Werror=3Ddeprecated-declarations] gtkutil.c:2006:3: error: =E2=80=98gtk_font_selection_dialog_set_font_na= me=E2=80=99 is deprecated (declared at /usr/include/gtk-3.0/gtk/deprecated/gtkfontsel.h:153): Use 'GtkFontChooser' instead [-Werror=3Ddeprecated-declarations] gtkutil.c:2019:7: error: =E2=80=98gtk_font_selection_dialog_get_font_na= me=E2=80=99 is deprecated (declared at /usr/include/gtk-3.0/gtk/deprecated/gtkfontsel.h:151): Use 'GtkFontChooser' instead [-Werror=3Ddeprecated-declarations] cc1: all warnings being treated as errors make[1]: *** [gtkutil.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/home/fo/work/OpenSource/Emacs/emacs/src' make: *** [src] Error 2 I found GTK3 API documentation and within couple of minutes of reading quickly applied the following fix: $ git diff diff --git a/src/gtkutil.c b/src/gtkutil.c index 4879479..ce9b851 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -2000,11 +2000,10 @@ xg_get_font_name (FRAME_PTR f, const char *default_name) sigblock (sigmask (__SIGRTMIN)); #endif /* HAVE_PTHREAD */ - w =3D gtk_font_selection_dialog_new ("Pick a font"); + w =3D gtk_font_chooser_dialog_new ("Pick a font", NULL); if (!default_name) default_name =3D "Monospace 10"; - gtk_font_selection_dialog_set_font_name (GTK_FONT_SELECTION_DIALOG = (w), - default_name); + gtk_font_chooser_set_font (GTK_FONT_CHOOSER (w), default_name); gtk_widget_set_name (w, "emacs-fontdialog"); @@ -2015,8 +2014,7 @@ xg_get_font_name (FRAME_PTR f, const char *default_name) #endif if (done =3D=3D GTK_RESPONSE_OK) - fontname =3D gtk_font_selection_dialog_get_font_name - (GTK_FONT_SELECTION_DIALOG (w)); + fontname =3D gtk_font_chooser_get_font(GTK_FONT_CHOOSER (w)); gtk_widget_destroy (w); return fontname; This fixed the compilation for my Ubuntu 12.04 machine (gtk3 seems to be version 3.4.2). I tried selecting font (by [SHIFT] + [LEFT-MOUSE-BUTTON]), and the new font selection widget worked for me. Note that I have never before done programming with GTK API, so you might review this with some care, and check the compatibility with the supported versions of GTK3 if you choose to apply this kind of fix to future versions of Emacs. Best regards and thanks for everybody's work for fabulous text editing environment (or whatever emacs should be called), Frans