xemacs-gtk branch published

Jeff Sparkes jsparkes at gmail.com
Fri Jun 4 13:42:40 EDT 2010


> Mats, I’ve seen your error. It’s because the configure script built without
> GTK support, only with X support (check its output), and Jeff’s changes
> haven’t been sufficiently tested in that context. Update to a more recent
> version of his code (especially, one with my changes to configure.ac and
> configure) and things should work better.
>

I've posted my configure string in another message.  I have been building
without the menubar, mainly because of the problem you mention below.  I go
into a bit more detail in the other message to the list.




>
> Jeff, I still need at least this to get things close to running:
>
> diff -r 37f1870f3969 src/menubar-gtk.c
> --- a/src/menubar-gtk.c Fri Jun 04 15:31:10 2010 +0100
> +++ b/src/menubar-gtk.c Fri Jun 04 16:10:51 2010 +0100
> @@ -49,17 +49,11 @@
>  #define SUBMENU_TYPE   1
>  #define POPUP_TYPE     2
>
> -static GQuark XEMACS_MENU_DESCR_TAG =
> -  g_quark_from_string ("xemacs::menu::description");
> -static GQuark XEMACS_MENU_FILTER_TAG =
> -  g_quark_from_string ("xemacs::menu::filter");
> -static GQuark XEMACS_MENU_GUIID_TAG =
> -  g_quark_from_string ("xemacs::menu::gui_id");
> -static GQuark XEMACS_MENU_FIRSTTIME_TAG =
> -  g_quark_from_string ("xemacs::menu::first_time");
> -static GQuark XEMACS_MENU_FRAME_TAG =
> -  g_quark_from_string ("xemacs::menu::frame");
> -
> +static GQuark XEMACS_MENU_DESCR_TAG;
> +static GQuark XEMACS_MENU_FILTER_TAG;
> +static GQuark XEMACS_MENU_GUIID_TAG;
> +static GQuark XEMACS_MENU_FIRSTTIME_TAG;
> +static GQuark XEMACS_MENU_FRAME_TAG;
>
>  static GtkWidget *menu_descriptor_to_widget_1 (Lisp_Object descr,
> GtkAccelGroup* accel_group);
>
> @@ -1500,6 +1494,11 @@
>  #ifdef TEAR_OFF_MENUS
>   tear_off_menus = 1;
>  #endif
> +  XEMACS_MENU_DESCR_TAG = g_quark_from_string
> ("xemacs::menu::description");
> +  XEMACS_MENU_FILTER_TAG = g_quark_from_string ("xemacs::menu::filter");
> +  XEMACS_MENU_GUIID_TAG = g_quark_from_string ("xemacs::menu::gui_id");
> +  XEMACS_MENU_FIRSTTIME_TAG = g_quark_from_string
> ("xemacs::menu::first_time");
> +  XEMACS_MENU_FRAME_TAG = g_quark_from_string ("xemacs::menu::frame");
>  }
>

I turned these back into #defines for now.

>
>  void
> diff -r 37f1870f3969 src/ui-gtk.c
> --- a/src/ui-gtk.c      Fri Jun 04 15:31:10 2010 +0100
> +++ b/src/ui-gtk.c      Fri Jun 04 16:10:51 2010 +0100
> @@ -742,6 +742,7 @@
>   CHECK_LIST (args);
>
>   n_args = XINT (Flength (args));
> +  memset (the_args, '\0', sizeof (the_args[0]) * (n_args + 1));
>
>  #ifdef XEMACS_IS_SMARTER_THAN_THE_PROGRAMMER
>   /* #### I think this is too dangerous to enable by default.
>
> I don't have to do this, but iI've checked it in.


> With this and with the most recent Mercurial version, XEmacs creates a
> frame, but this constantly resizes, making itself smaller, until finally
> only the menubar is visible. This is unusable.
> http://www.parhasard.net/xemacs/problems-20100604.log
> is what that build prints to standard error and standard output.
>
> There's a confusion between frame units and pixel somewhere in the frame
sizing code.   It's probably blindingly obvious to someone else, but I've
been staring at the code too long.


-- 
Jeff Sparkes
jsparkes at gmail.com


More information about the XEmacs-Beta mailing list