tSet window manager hints and centre-on-parent behaviour for dialog windows, so that, e.g., dopewars plays nicely with window managers that do not automatically centre transients (e.g. Metacity). - vaccinewars - be a doctor and try to vaccinate the world
(HTM) git clone git://src.adamsgaard.dk/vaccinewars
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit cffdcf8e46ce98b2fd738862f03cae7318a31268
(DIR) parent bf68d6713ceb7e4139d5e39af0ff7719a00645f1
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Mon, 7 Oct 2002 10:52:52 +0000
Set window manager hints and centre-on-parent behaviour for dialog windows,
so that, e.g., dopewars plays nicely with window managers that do not
automatically centre transients (e.g. Metacity).
Diffstat:
M src/gui_client/gtk_client.c | 25 +++++++++++++++++++++++++
M src/gui_client/newgamedia.c | 3 +++
M src/gui_client/optdialog.c | 1 +
3 files changed, 29 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/src/gui_client/gtk_client.c b/src/gui_client/gtk_client.c
t@@ -212,6 +212,17 @@ GtkWidget *my_hbbox_new(void)
return hbbox;
}
+/*
+ * Sets the initial size and window manager hints of a dialog.
+ */
+void my_set_dialog_position(GtkWindow *dialog)
+{
+#ifdef HAVE_GLIB2
+ gtk_window_set_type_hint(dialog, GDK_WINDOW_TYPE_HINT_DIALOG);
+ gtk_window_set_position(dialog, GTK_WIN_POS_CENTER_ON_PARENT);
+#endif
+}
+
void QuitGame(GtkWidget *widget, gpointer data)
{
if (!InGame || GtkMessageBox(ClientData.window,
t@@ -306,6 +317,7 @@ void ListInventory(GtkWidget *widget, gpointer data)
/* Title of inventory window */
gtk_window_set_title(GTK_WINDOW(window), _("Inventory"));
+ my_set_dialog_position(GTK_WINDOW(window));
SetShowing(window, &IsShowingInventory);
t@@ -603,6 +615,7 @@ void PrepareHighScoreDialog(void)
/* Title of the GTK+ high score dialog */
gtk_window_set_title(GTK_WINDOW(dialog), _("High Scores"));
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
t@@ -891,6 +904,7 @@ static void CreateFightDialog(void)
accel_group = gtk_accel_group_new();
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group);
gtk_window_set_title(GTK_WINDOW(dialog), _("Fight"));
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
t@@ -1424,6 +1438,7 @@ void Jet(GtkWidget *parent)
dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/* Title of 'Jet' dialog */
gtk_window_set_title(GTK_WINDOW(dialog), _("Jet to location"));
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group);
t@@ -1644,6 +1659,7 @@ void DealDrugs(GtkWidget *widget, gpointer data)
dialog = DealDialog.dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(dialog), Action);
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group);
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
t@@ -1870,6 +1886,7 @@ void QuestionDialog(char *Data, Player *From)
/* Title of the 'ask player a question' dialog */
gtk_window_set_title(GTK_WINDOW(dialog), _("Question"));
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group);
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
t@@ -2361,6 +2378,7 @@ void display_intro(GtkWidget *widget, gpointer data)
/* Title of GTK+ 'about' dialog */
gtk_window_set_title(GTK_WINDOW(dialog), _("About dopewars"));
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
gtk_window_set_transient_for(GTK_WINDOW(dialog),
t@@ -2530,6 +2548,7 @@ void TransferDialog(gboolean Debt)
Names.BankName);
}
gtk_window_set_title(GTK_WINDOW(dialog), text->str);
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
gtk_window_set_transient_for(GTK_WINDOW(dialog),
t@@ -2631,6 +2650,7 @@ void ListPlayers(GtkWidget *widget, gpointer data)
/* Title of player list dialog */
gtk_window_set_title(GTK_WINDOW(dialog), _("Player List"));
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_window_set_default_size(GTK_WINDOW(dialog), 200, 180);
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
t@@ -2732,6 +2752,7 @@ void TalkDialog(gboolean TalkToAll)
/* Title of talk dialog */
gtk_window_set_title(GTK_WINDOW(dialog), _("Talk to player(s)"));
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_window_set_default_size(GTK_WINDOW(dialog), 200, 190);
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
t@@ -2910,6 +2931,7 @@ void ErrandDialog(gint ErrandType)
label = gtk_label_new(text);
g_free(text);
}
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
t@@ -3101,6 +3123,7 @@ void NewNameDialog(void)
/* Title of dialog for changing a player's name */
gtk_window_set_title(GTK_WINDOW(window), _("Change Name"));
+ my_set_dialog_position(GTK_WINDOW(window));
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_transient_for(GTK_WINDOW(window),
t@@ -3160,6 +3183,7 @@ void GunShopDialog(void)
text = dpg_strdup_printf(_("%/GTK GunShop window title/%Tde"),
Names.GunShopName);
gtk_window_set_title(GTK_WINDOW(window), text);
+ my_set_dialog_position(GTK_WINDOW(window));
g_free(text);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_transient_for(GTK_WINDOW(window),
t@@ -3222,6 +3246,7 @@ static void CreateSpyReports(void)
/* Title of window to display reports from spies with other players */
gtk_window_set_title(GTK_WINDOW(window), _("Spy reports"));
+ my_set_dialog_position(GTK_WINDOW(window));
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_transient_for(GTK_WINDOW(window),
(DIR) diff --git a/src/gui_client/newgamedia.c b/src/gui_client/newgamedia.c
t@@ -485,6 +485,7 @@ void NewGameDialog(Player *play)
/* Title of 'New Game' dialog */
gtk_window_set_title(GTK_WINDOW(dialog), _("New Game"));
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group);
t@@ -718,6 +719,7 @@ void AuthDialog(HttpConnection *conn, gboolean proxy, gchar *realm,
/* Title of dialog for authenticating with a web server */
gtk_window_set_title(GTK_WINDOW(window), _("Authentication Required"));
}
+ my_set_dialog_position(GTK_WINDOW(window));
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_transient_for(GTK_WINDOW(window),
t@@ -832,6 +834,7 @@ static void RealSocksAuthDialog(NetworkBuffer *netbuf, gboolean meta,
/* Title of dialog for authenticating with a SOCKS server */
gtk_window_set_title(GTK_WINDOW(window),
_("SOCKS Authentication Required"));
+ my_set_dialog_position(GTK_WINDOW(window));
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_window_set_transient_for(GTK_WINDOW(window),
(DIR) diff --git a/src/gui_client/optdialog.c b/src/gui_client/optdialog.c
t@@ -760,6 +760,7 @@ void OptDialog(GtkWidget *widget, gpointer data)
gtk_window_add_accel_group(GTK_WINDOW(dialog), accel_group);
gtk_window_set_title(GTK_WINDOW(dialog), _("Options"));
+ my_set_dialog_position(GTK_WINDOW(dialog));
gtk_container_set_border_width(GTK_CONTAINER(dialog), 7);
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);