X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=driver%2Fdemo-Gtk.c;h=c11224d4b0ecb43fb4ae4e50c825007d83bc5492;hp=d4052b62bab295d6b88b4b272051cbbca8fc6a09;hb=a1d41b2aa6e18bf9a49b914a99dda8232c5d7762;hpb=3c58fb6311db49c46f1670922933b27c6ea0c065 diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c index d4052b62..c11224d4 100644 --- a/driver/demo-Gtk.c +++ b/driver/demo-Gtk.c @@ -62,7 +62,7 @@ # include #endif -extern Display *gdk_display; +#include #include "version.h" #include "prefs.h" @@ -252,6 +252,9 @@ warning_dialog (GtkWidget *parent, const char *message, while (parent->parent) parent = parent->parent; + if (!GTK_WIDGET (parent)->window) /* too early to pop up transient dialogs */ + return; + head = msg; while (head) { @@ -333,6 +336,7 @@ warning_dialog (GtkWidget *parent, const char *message, GTK_SIGNAL_FUNC (warning_dialog_dismiss_cb), (gpointer) dialog); } + gdk_window_set_transient_for (GTK_WIDGET (dialog)->window, GTK_WIDGET (parent)->window); @@ -350,7 +354,7 @@ run_cmd (GtkWidget *widget, Atom command, int arg) int status; apply_changes_and_save (widget); - status = xscreensaver_command (gdk_display, command, arg, False, &err); + status = xscreensaver_command (GDK_DISPLAY(), command, arg, False, &err); if (status < 0) { char buf [255]; @@ -374,7 +378,7 @@ run_hack (GtkWidget *widget, int which, Bool report_errors_p) else { char *s = 0; - xscreensaver_command (gdk_display, XA_DEMO, which + 1, False, &s); + xscreensaver_command (GDK_DISPLAY(), XA_DEMO, which + 1, False, &s); if (s) free (s); } } @@ -595,7 +599,7 @@ restart_menu_cb (GtkWidget *widget, gpointer user_data) run_cmd (GTK_WIDGET (widget), XA_RESTART, 0); #else apply_changes_and_save (GTK_WIDGET (widget)); - xscreensaver_command (gdk_display, XA_EXIT, 0, False, NULL); + xscreensaver_command (GDK_DISPLAY(), XA_EXIT, 0, False, NULL); sleep (1); system ("xscreensaver -nosplash &"); #endif @@ -608,7 +612,7 @@ await_xscreensaver (GtkWidget *widget) { int countdown = 5; - Display *dpy = gdk_display; + Display *dpy = GDK_DISPLAY(); /* GtkWidget *dialog = 0;*/ char *rversion = 0; @@ -1045,6 +1049,8 @@ prefs_ok_cb (GtkButton *button, gpointer user_data) char b[255]; \ sprintf (b, "Error:\n\n" "Directory does not exist: \"%s\"\n", line); \ warning_dialog (GTK_WIDGET (button), b, False, 100); \ + if ((field)) free ((field)); \ + (field) = strdup(line); \ } \ else { \ if ((field)) free ((field)); \ @@ -1128,7 +1134,7 @@ prefs_ok_cb (GtkButton *button, gpointer user_data) if (changed) { - Display *dpy = gdk_display; + Display *dpy = GDK_DISPLAY(); sync_server_dpms_settings (dpy, p->dpms_enabled_p, p->dpms_standby / 1000, p->dpms_suspend / 1000, @@ -1405,7 +1411,7 @@ scroll_to_current_hack (GtkWidget *toplevel, prefs_pair *pair) int format; unsigned long nitems, bytesafter; CARD32 *data = 0; - Display *dpy = gdk_display; + Display *dpy = GDK_DISPLAY(); int which = 0; GtkList *list; @@ -1579,7 +1585,7 @@ populate_prefs_page (GtkWidget *top, prefs_pair *pair) Bool found_any_writable_cells = False; Bool dpms_supported = False; - Display *dpy = gdk_display; + Display *dpy = GDK_DISPLAY(); int nscreens = ScreenCount(dpy); int i; for (i = 0; i < nscreens; i++) @@ -2139,7 +2145,7 @@ mapper (XrmDatabase *db, XrmBindingList bindings, XrmQuarkList quarks, static void the_network_is_not_the_computer (GtkWidget *parent) { - Display *dpy = gdk_display; + Display *dpy = GDK_DISPLAY(); char *rversion, *ruser, *rhost; char *luser, *lhost; char *msg = 0; @@ -2496,7 +2502,7 @@ main (int argc, char **argv) */ XtToolkitInitialize (); app = XtCreateApplicationContext (); - dpy = gdk_display; + dpy = GDK_DISPLAY(); XtAppSetFallbackResources (app, defaults); XtDisplayInitialize (app, dpy, progname, progclass, 0, 0, &argc, argv); toplevel_shell = XtAppCreateShell (progname, progclass,