Hi,
Here are some changes I made against the new upstream 1.9 version. It
does build but I am sure it needs some work. For one thing I didn't
know what to do with gdk_send_xevent.
I've sent this to upstream but he doesn't seem that motivated to fix it.
Thanks,
Barry deFreese
Debian QA
diff -urN mj-1.9-src.orig/gui.c mj-1.9-src/gui.c
--- mj-1.9-src.orig/gui.c 2008-08-22 16:57:36.000000000 -0400
+++ mj-1.9-src/gui.c 2009-03-25 11:04:09.000000000 -0400
@@ -1167,6 +1167,23 @@
break;
case CMsgMessage:
{
+#ifdef GTK2
+ GtkTextBuffer *messagetextbuf;
+ GtkTextIter messagetextiter;
+ messagetextbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (messagetext));
+ gtk_text_buffer_get_iter_at_offset (messagetextbuf, &messagetextiter, 0);
+
+ gtk_text_buffer_insert(messagetextbuf,&messagetextiter,
+ "\n",-1);
+ gtk_text_buffer_insert(messagetextbuf,&messagetextiter,
+ m->message.sender == 0 ? "CONTROLLER" :
game_id_to_player(the_game,m->message.sender)->name,-1);
+ gtk_text_buffer_insert(messagetextbuf,&messagetextiter,
+ "> ",-1);
+ if ( m->message.text ) {
+ gtk_text_buffer_insert(messagetextbuf,&messagetextiter,
+ m->message.text,-1);
+ }
+#else
gtk_text_insert(GTK_TEXT(messagetext),0,0,0,
"\n",-1);
gtk_text_insert(GTK_TEXT(messagetext),0,0,0,
@@ -1177,6 +1194,7 @@
gtk_text_insert(GTK_TEXT(messagetext),0,0,0,
m->message.text,-1);
}
+#endif
if ( !nopopups && !info_windows_in_main) {
showraise(messagewindow);
}
@@ -4448,7 +4466,8 @@
ev.xclient.message_type = (guint32) atom;
ev.xclient.window = GDK_WINDOW_XWINDOW(w->window);
#ifdef GTK2
-
gdk_send_xevent(GDK_ROOT_WINDOW(),False,SubstructureRedirectMask|SubstructureNotifyMask,
&ev);
+/* BDD - Fix Me */
+/*
gdk_send_xevent(GDK_ROOT_WINDOW(),False,SubstructureRedirectMask|SubstructureNotifyMask,
&ev); */
#else
gdk_send_xevent(gdk_root_window,False,SubstructureRedirectMask|SubstructureNotifyMask,
&ev);
#endif
diff -urN mj-1.9-src.orig/gui-dial.c mj-1.9-src/gui-dial.c
--- mj-1.9-src.orig/gui-dial.c 2008-08-22 16:57:36.000000000 -0400
+++ mj-1.9-src/gui-dial.c 2009-03-25 10:29:18.000000000 -0400
@@ -96,9 +96,19 @@
/* The window for messages, and the display text widget */
GtkWidget *messagewindow, *messagetext;
+#ifdef GTK2
+GtkTextBuffer *messagetextbuf;
+GtkTextIter messagetextiter;
+#endif
+
/* Warning window */
GtkWidget *warningwindow, *warningtext;
+#ifdef GTK2
+GtkTextBuffer *warningtextbuf;
+GtkTextIter warningtextiter;
+#endif
+
/* The Save As.. dialog */
GtkWidget *save_window;
/* and its text entry widget */
@@ -1682,6 +1692,11 @@
int i;
GtkWidget *sbar, *obox, *box, *tmp, *lbl,*textw;
+#ifdef GTK2
+ GtkTextBuffer *textwbuf;
+ GtkTextIter textwiter;
+#endif
+
textwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (textwindow),
"delete_event",GTK_SIGNAL_FUNC(gtk_widget_hide), NULL);
/* must allow shrinking */
@@ -1707,10 +1722,18 @@
for (i=0;i<5;i++) {
GtkStyle *s;
+#ifdef GTK2
+ textw = gtk_text_view_new();
+#else
textw = gtk_text_new(NULL,NULL);
+#endif
gtk_widget_show(textw);
textpages[i] = textw;
+#ifdef GTK2
+ sbar = gtk_vscrollbar_new(GTK_TEXT_VIEW (textw)->vadjustment);
+#else
sbar = gtk_vscrollbar_new(GTK_TEXT (textw)->vadj);
+#endif
gtk_widget_show(sbar);
box = gtk_hbox_new(0,0);
gtk_widget_show(box);
@@ -1778,12 +1801,22 @@
gtk_container_add(GTK_CONTAINER(messagewindow),obox);
}
+#ifdef GTK2
+ messagetext = gtk_text_view_new();
+ messagetextbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (messagetext));
+ gtk_text_buffer_get_iter_at_offset (messagetextbuf, &messagetextiter, 0);
+#else
messagetext = gtk_text_new(NULL,NULL);
+#endif
if ( info_windows_in_main ) {
gtk_widget_set_usize(messagetext,0,50);
}
gtk_widget_show(messagetext);
+#ifdef GTK2
+ sbar = gtk_vscrollbar_new(GTK_TEXT_VIEW (messagetext)->vadjustment);
+#else
sbar = gtk_vscrollbar_new(GTK_TEXT (messagetext)->vadj);
+#endif
gtk_widget_show(sbar);
box = gtk_hbox_new(0,0);
gtk_widget_show(box);
@@ -1870,9 +1903,19 @@
gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(obox),label,0,0,0);
+#ifdef GTK2
+ warningtext = gtk_text_view_new();
+ warningtextbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (warningtext));
+ gtk_text_buffer_get_iter_at_offset (warningtextbuf, &warningtextiter, 0);
+#else
warningtext = gtk_text_new(NULL,NULL);
+#endif
gtk_widget_show(warningtext);
+#ifdef GTK2
+ sbar = gtk_vscrollbar_new(GTK_TEXT_VIEW (warningtext)->vadjustment);
+#else
sbar = gtk_vscrollbar_new(GTK_TEXT (warningtext)->vadj);
+#endif
gtk_widget_show(sbar);
box = gtk_hbox_new(0,0);
gtk_widget_show(box);
@@ -2003,11 +2046,19 @@
}
} else {
if ( buf[0] ) {
+#ifdef GTK2
+ gtk_text_buffer_insert(warningtextbuf,&warningtextiter,buf,-1);
+#else
gtk_text_insert(GTK_TEXT(warningtext),NULL,NULL,NULL,buf,-1);
+#endif
buf[0] = 0;
}
if ( warning ) {
+#ifdef GTK2
+ gtk_text_buffer_insert(warningtextbuf,&warningtextiter,warning,-1);
+#else
gtk_text_insert(GTK_TEXT(warningtext),NULL,NULL,NULL,warning,-1);
+#endif
}
if ( warning_numbers > 0 ) gtk_widget_show(warningentry);
/* if the log level exceeds warning, try to file a report,
@@ -3776,9 +3827,22 @@
gtk_widget_show(vbox);
gtk_container_add(GTK_CONTAINER(about_window),vbox);
+#ifdef GTK2
+ GtkTextBuffer *textwbuf;
+ GtkTextIter textwiter;
+
+ textw = gtk_text_view_new();
+ textwbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textw));
+ gtk_text_buffer_get_iter_at_offset (textwbuf, &textwiter, 0);
+#else
textw = gtk_text_new(NULL,NULL);
+#endif
gtk_widget_set_usize(textw,300,200);
+#ifdef GTK2
+ gtk_text_buffer_insert(textwbuf,&textwiter,abouttxt,-1);
+#else
gtk_text_insert(GTK_TEXT(textw),NULL,NULL,NULL,abouttxt,-1);
+#endif
gtk_widget_show(textw);
GTK_WIDGET_UNSET_FLAGS(textw,GTK_CAN_FOCUS);
gtk_box_pack_start(GTK_BOX(vbox),textw,0,0,0);
@@ -3798,6 +3862,12 @@
static void nag_init(void) {
GtkWidget *yesbutton, *maybebutton, *nobutton, *textw, *vbox;
+
+#ifdef GTK2
+ GtkTextBuffer *textwbuf;
+ GtkTextIter textwiter;
+#endif
+
char buf[1024];
static char *nagtxt = ""
"Congratulations: you've completed %d full games using\n"
@@ -3821,10 +3891,20 @@
gtk_widget_show(vbox);
gtk_container_add(GTK_CONTAINER(nag_window),vbox);
+#ifdef GTK2
+ textw = gtk_text_view_new();
+#else
textw = gtk_text_new(NULL,NULL);
+#endif
gtk_widget_set_usize(textw,400,200);
sprintf(buf,nagtxt,completed_games);
+#ifdef GTK2
+ textwbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textw));
+ gtk_text_buffer_get_iter_at_offset (textwbuf, &textwiter, 0);
+ gtk_text_buffer_insert(textwbuf,&textwiter,buf,-1);
+#else
gtk_text_insert(GTK_TEXT(textw),NULL,NULL,NULL,buf,-1);
+#endif
gtk_widget_show(textw);
GTK_WIDGET_UNSET_FLAGS(textw,GTK_CAN_FOCUS);
gtk_box_pack_start(GTK_BOX(vbox),textw,0,0,0);
diff -urN mj-1.9-src.orig/Makefile.in mj-1.9-src/Makefile.in
--- mj-1.9-src.orig/Makefile.in 2008-08-22 16:57:36.000000000 -0400
+++ mj-1.9-src/Makefile.in 2009-03-25 11:05:35.000000000 -0400
@@ -24,7 +24,7 @@
# this is for gtk+ 1.2
# GTK_VERSION undefined
# this is for gtk+ 2.0
-# GTK_VERSION = 2.0
+GTK_VERSION = 2.0
# This is not available in current public releases.
# Uncomment the following line to build the table manager.
@@ -92,7 +92,7 @@
endif
ifdef GTK_VERSION
-GTKDEFINES = -DGTK2=1 -DGTK_ENABLE_BROKEN
+GTKDEFINES = -DGTK2=1
endif
# Options for compiling.