]> hydra-www.ietfng.org Git - gtetrinet/commitdiff
From Dani Carbonell: dialog behaviour handling fixes and focus gmsginput just when...
authorJordi Albornoz <jordi@src.gnome.org>
Sun, 5 Jan 2003 20:58:28 +0000 (20:58 +0000)
committerJordi Albornoz <jordi@src.gnome.org>
Sun, 5 Jan 2003 20:58:28 +0000 (20:58 +0000)
ChangeLog
TODO
src/dialogs.c
src/fields.c
src/gtetrinet.c
src/gtetrinet.h
src/partyline.c
src/tetrinet.c

index 186fb8b89dd16c7d7e2f51d5d8b3d45e2d714e34..43fd4ce5d1a46f67dfd40556a9727270399acd2d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2003-01-05  Dani Carbonell  <bocata@panete.net>
+
+       * TODO: updated.
+
+       * src/dialogs.c (connectingdialog_new): fixed behaviour when opening
+       more than one window, now it presents the existing one.
+       (teamdialog_new):likewise.
+       (prefdialog_new):likewise.
+
+       * src/tetrinet.c (tetrinet_key): we were giving focus to the gmsginput
+       even if there was no such input visible, now we only give focus if
+       gmsgstate == 1 (while writing message).
+
+       * src/gtetrinet.c (main): gtk_window_set_policy is deprecated,
+       changed to gtk_window_set_resizable.
+
 2003-01-05  Jordi Mallach  <jordi@sindominio.net>
 
        * Adapt patch from Jan Bretschneider with some UI improvements that
diff --git a/TODO b/TODO
index 72a7544dfa09a8a515c9b650e5b7d3ad5824d8f3..a79d42b904356e04b7f64d527e14a82a7de91418 100644 (file)
--- a/TODO
+++ b/TODO
@@ -9,8 +9,6 @@ GTetrinet's TODO list
   + problem when typing composed letters (รก) in fields messages
   + add real tooltips
   + port deprecated widgets (-DGTK_DISABLE_DEPRECATED)
-  + pressing a key when a game is in progress, but you are not playing it, 
-    causes a Gtk-CRITICAL
   + detaching and reattaching the Menu Bar causes two Bonobo-CRITICAL
 - Make gtetrinet resizeable (at least the fields messages bit)
 - Write a User Manual
index 0130ee4e8056b0a857a77fc34242a323663a0864..5801e10a1cd1ef91f17315aed640285acceff40b 100644 (file)
@@ -74,7 +74,11 @@ gint connectingdialog_timeout (gpointer data)
 
 void connectingdialog_new (void)
 {
-    if (connectingdialog) return;
+    if (connectingdialog)
+    {
+      gtk_window_present (GTK_WINDOW (connectingdialog));
+      return;
+    }
     connectingdialog = gnome_dialog_new (_("Connect to server"),
                                          GNOME_STOCK_BUTTON_CANCEL,
                                          NULL);
@@ -125,7 +129,15 @@ void teamdialog_button (GnomeDialog *dialog, gint button, gpointer data)
 
 void teamdialog_new (void)
 {
-    GtkWidget *dialog, *table, *widget, *entry;
+    static GtkWidget *dialog;
+    GtkWidget *table, *widget, *entry;
+  
+    if (dialog)
+    {
+      gtk_window_present (GTK_WINDOW (dialog));
+      return;
+    }
+  
     dialog = gnome_dialog_new (_("Change team"),
                                GNOME_STOCK_BUTTON_OK,
                                GNOME_STOCK_BUTTON_CANCEL,
@@ -229,7 +241,11 @@ void connectdialog_new (void)
     GtkWidget *widget, *table1, *table2, *frame;
     gchar *aux;
     /* check if dialog is already displayed */
-    if (connecting) return;
+    if (connectdialog) 
+    {
+      gtk_window_present (GTK_WINDOW (connectdialog));
+      return;
+    }
     connecting = TRUE;
 
     /* save some stuff */
@@ -394,7 +410,7 @@ gint key_dialog (char *msg)
     gtk_box_pack_start (GTK_BOX(GNOME_DIALOG(dialog)->vbox),
                         label, TRUE, TRUE, GNOME_PAD_SMALL);
     gnome_dialog_set_close (GNOME_DIALOG(dialog), TRUE);
-    g_signal_connect (G_OBJECT(dialog), "key_press_event",
+    g_signal_connect (G_OBJECT(dialog), "key-press-event",
                         GTK_SIGNAL_FUNC(key_dialog_callback), NULL);
     gtk_widget_set_events (dialog, GDK_KEY_PRESS_MASK);
     keydialog_key = 0;
@@ -718,6 +734,12 @@ void prefdialog_new (void)
     GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
     GtkTreeSelection *theme_selection, *keys_selection;
     int i;
+  
+    if (prefdialog)
+    {
+      gtk_window_present (GTK_WINDOW (prefdialog));
+      return;
+    }
 
     prefdialog = gnome_property_box_new();
 
index 4d7b9818e327bb8c0187fe56460494d5158ffc0b..002a44616cf57de6b17df31a27369d05bc9aa52e 100644 (file)
@@ -311,7 +311,7 @@ GtkWidget *fields_page_contents (void)
     gmsginput = gtk_entry_new_with_max_length (128);
     gtk_widget_show (gmsginput);
     /* eat up key messages */
-    g_signal_connect (G_OBJECT(gmsginput), "key_press_event",
+    g_signal_connect (G_OBJECT(gmsginput), "key-press-event",
                         GTK_SIGNAL_FUNC(fields_eatkey), NULL);
     gtk_table_attach (GTK_TABLE(table2), gmsginput, 0, 1, 1, 2,
                       GTK_FILL | GTK_EXPAND, 0, 0, 0);
@@ -618,6 +618,6 @@ const char *fields_gmsginputtext (void)
 
 gint fields_eatkey (GtkWidget *widget, GdkEventKey *key)
 {
-    gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key_press_event");
+    gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key-press-event");
     return TRUE;
 }
index 1d6ac5e81e67b7840514933dd538c16571530e6f..099611fed5d5b70f1e3096af31e892f4d006551a 100644 (file)
@@ -47,8 +47,8 @@
 
 static GtkWidget *pixmapdata_label (char **d, char *str);
 static int gtetrinet_key (int keyval, int mod);
-gint keypress (GtkWidget *widget, GdkEventKey *key);
-gint keyrelease (GtkWidget *widget, GdkEventKey *key);
+gint keypress (GtkWidget *widget, GdkEventKey *key, gpointer data);
+gint keyrelease (GtkWidget *widget, GdkEventKey *key, gpointer data);
 
 static GtkWidget *app, *pfields, *pparty, *pwinlist;
 static GtkWidget *winlistwidget, *partywidget, *fieldswidget;
@@ -154,13 +154,13 @@ int main (int argc, char *argv[])
 
     g_signal_connect (G_OBJECT(app), "destroy",
                         GTK_SIGNAL_FUNC(destroymain), NULL);
-    g_signal_connect (G_OBJECT(app), "key_press_event",
+    g_signal_connect (G_OBJECT(app), "key-press-event",
                         GTK_SIGNAL_FUNC(keypress), NULL);
-    g_signal_connect (G_OBJECT(app), "key_release_event",
+    g_signal_connect (G_OBJECT(app), "key-release-event",
                         GTK_SIGNAL_FUNC(keyrelease), NULL);
     gtk_widget_set_events (app, GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK);
 
-    gtk_window_set_policy (GTK_WINDOW(app), FALSE, FALSE, TRUE);
+    gtk_window_set_resizable (GTK_WINDOW (app), FALSE);
     
     /* create and set the window icon */
     icon_pixbuf = gdk_pixbuf_new_from_file (PIXMAPSDIR "/gtetrinet.png", NULL);
@@ -308,7 +308,7 @@ gint keytimeout (gpointer data)
     return FALSE;
 }
 
-gint keypress (GtkWidget *widget, GdkEventKey *key)
+gint keypress (GtkWidget *widget, GdkEventKey *key, gpointer data)
 {
     int game_area;
 
@@ -352,7 +352,7 @@ gint keypress (GtkWidget *widget, GdkEventKey *key)
     return FALSE;
 }
 
-gint keyrelease (GtkWidget *widget, GdkEventKey *key)
+gint keyrelease (GtkWidget *widget, GdkEventKey *key, gpointer data)
 {
     int game_area;
 
@@ -377,7 +377,7 @@ gint keyrelease (GtkWidget *widget, GdkEventKey *key)
     {
         k = *key;
         keytimeoutid = gtk_timeout_add (10, keytimeout, 0);
-        gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key_release_event");
+        gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key-release-event");
         return TRUE;
     }
     return FALSE;
@@ -459,9 +459,9 @@ void move_current_page_to_window (void)
     gtk_container_set_border_width (GTK_CONTAINER (newWindow), 0);
 
     /* Attach key events to window */
-    g_signal_connect (G_OBJECT(newWindow), "key_press_event",
+    g_signal_connect (G_OBJECT(newWindow), "key-press-event",
                         GTK_SIGNAL_FUNC(keypress), NULL);
-    g_signal_connect (G_OBJECT(newWindow), "key_release_event",
+    g_signal_connect (G_OBJECT(newWindow), "key-release-event",
                         GTK_SIGNAL_FUNC(keyrelease), NULL);
     gtk_widget_set_events (newWindow, GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK);
     gtk_window_set_policy (GTK_WINDOW(newWindow), FALSE, TRUE, FALSE);
index 40e75d38f01240b9557dc473855f7d0916106255..bf031dc92f62f5f896042989d4502e113a62653a 100644 (file)
@@ -8,8 +8,8 @@
 extern int gamemode;
 
 extern void destroymain (GtkWidget *widget, gpointer data);
-extern gint keypress (GtkWidget *widget, GdkEventKey *key);
-extern gint keyrelease (GtkWidget *widget, GdkEventKey *key);
+extern gint keypress (GtkWidget *widget, GdkEventKey *key, gpointer data);
+extern gint keyrelease (GtkWidget *widget, GdkEventKey *key, gpointer data);
 extern void move_current_page_to_window (void);
 extern void show_fields_page (void);
 extern void show_partyline_page (void);
index 00d266f4f314d50f66dd2604afbc5a4139b8c23a..4d9fbf1498427c505c2ac532155e1fdf2b1bd3d0 100644 (file)
@@ -76,7 +76,7 @@ GtkWidget *partyline_page_new (void)
     entrybox = gtk_entry_new_with_max_length (200);
     g_signal_connect (G_OBJECT(entrybox), "activate",
                       GTK_SIGNAL_FUNC(textentry), NULL);
-    g_signal_connect (G_OBJECT(entrybox), "key_press_event",
+    g_signal_connect (G_OBJECT(entrybox), "key-press-event",
                       GTK_SIGNAL_FUNC(entrykey), NULL);
     gtk_widget_show (entrybox);
     gtk_box_pack_start (GTK_BOX(leftbox), entrybox, FALSE, FALSE, 0);
@@ -315,7 +315,7 @@ static gint entrykey (GtkWidget *widget, GdkEventKey *key)
         printf ("history: %d %d %d %s\n", plh_start, plh_end, plh_cur,
                 plhistory[plh_cur]);
 #endif
-        gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key_press_event");
+        gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key-press-event");
         return TRUE;
     }
     else if (keyval == GDK_Left || keyval == GDK_Right) {
index 909bbc89b4ead1abdb27e8ef0531d4b7b87d7701..15840ef3c1ec4b2c6c5c8359395c01b776fee0f5 100644 (file)
@@ -1511,9 +1511,9 @@ int tetrinet_key (int keyval, char *str)
     }
 notfieldkey:
     if (!ingame) return FALSE;
-    fields_gmsginputactivate (TRUE);
     /* gmsg keys */
     if (gmsgstate == 1) {
+        fields_gmsginputactivate (TRUE);
         switch (keyval) {
         case GDK_Return:
             {