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