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.

Reply via email to