--- np2/x11/gtk2/gtk_wrapper.c 2007/02/04 11:51:14 1.9 +++ np2/x11/gtk2/gtk_wrapper.c 2012/01/23 05:00:13 1.15 @@ -1,5 +1,3 @@ -/* $Id: gtk_wrapper.c,v 1.9 2007/02/04 11:51:14 monaka Exp $ */ - /* * Copyright (c) 2002-2004 NONAKA Kimihiro * All rights reserved. @@ -33,6 +31,7 @@ #include #include #include +#include #include #include @@ -42,10 +41,15 @@ #include extern int verbose; +extern volatile sig_atomic_t np2running; +#ifdef DEBUG #ifndef VERBOSE -#define VERBOSE(s) if (verbose) printf s -#endif +#define VERBOSE(s) if (verbose) g_printerr s +#endif /* !VERBOSE */ +#else /* !DEBUG */ +#define VERBOSE(s) +#endif /* DEBUG */ void gtk_scale_set_default_values(GtkScale *scale) @@ -105,6 +109,7 @@ gdk_window_get_pixmap_format(GdkWindow * extern int ignore_fullscreen_mode; static int use_xvid; static int use_netwm; +static int is_fullscreen; #ifdef HAVE_XF86VIDMODE #include @@ -133,7 +138,6 @@ static int check_xvid(GtkWidget *widget) { gboolean ret = FALSE; - GtkWindow *window; GdkWindow *w; Display *xdisplay; int xscreen; @@ -146,7 +150,6 @@ check_xvid(GtkWidget *widget) g_return_val_if_fail(widget != NULL, FALSE); - window = GTK_WINDOW(widget); w = widget->window; xdisplay = GDK_WINDOW_XDISPLAY(w); xscreen = XDefaultScreen(xdisplay); @@ -229,7 +232,7 @@ check_netwm(GtkWidget *widget) unsigned char *prop; guint32 *data; int rv; - long i; + unsigned long i; g_return_val_if_fail(widget != NULL, 0); @@ -287,11 +290,11 @@ gtk_window_init_fullscreen(GtkWidget *wi if (verbose) { if (use_xvid) { - printf("Using XF86VidMode extension\n"); + VERBOSE(("Using XF86VidMode extension\n")); } else if (use_netwm) { - printf("Using _NET_WM_STATE_FULLSCREEN\n"); + VERBOSE(("Using _NET_WM_STATE_FULLSCREEN\n")); } else { - printf("not supported\n"); + VERBOSE(("not supported\n")); } } @@ -319,11 +322,12 @@ gtk_window_fullscreen_mode(GtkWidget *wi XF86VidModeSwitchToMode(fs_xdisplay,fs_xscreen,modes[modeidx]); XUnlockDisplay(fs_xdisplay); - } else + } #endif /* HAVE_XF86VIDMODE */ if (use_netwm) { gtk_window_fullscreen(GTK_WINDOW(widget)); } + is_fullscreen = 1; } void @@ -332,17 +336,17 @@ gtk_window_restore_mode(GtkWidget *widge g_return_if_fail(widget != NULL); + if (!is_fullscreen) + return; + #ifdef HAVE_XF86VIDMODE if (use_xvid) { - GtkWindow *window; XF86VidModeModeInfo mode; int rv; if ((orig_mode.hdisplay == 0) || (orig_mode.vdisplay == 0)) return; - window = GTK_WINDOW(widget); - XLockDisplay(fs_xdisplay); rv = XF86VidModeGetModeInfo(fs_xdisplay, fs_xscreen, &mode); @@ -360,12 +364,12 @@ gtk_window_restore_mode(GtkWidget *widge } } - if (window != NULL) { - gtk_window_move(window, orig_x, orig_y); + if (np2running) { + gtk_window_move(GTK_WINDOW(widget), orig_x, orig_y); } XUnlockDisplay(fs_xdisplay); - } else + } #endif /* HAVE_XF86VIDMODE */ if (use_netwm) { gtk_window_unfullscreen(GTK_WINDOW(widget));