{
FullScreenData *fs;
GdkScreen *screen;
- gboolean same;
gint x, y;
gint w, h;
GdkGeometry geometry;
DEBUG_1("full screen requests screen %d", options->fullscreen.screen);
fullscreen_prefs_get_geometry(options->fullscreen.screen, window, &x, &y, &w, &h,
- &screen, &same);
+ &screen, &fs->same_region);
fs->window = window_new(GTK_WINDOW_TOPLEVEL, "fullscreen", NULL, NULL, _("Full screen"));
gtk_widget_show(fs->imd->widget);
- image_change_from_image(fs->imd, fs->normal_imd);
+ if (fs->same_region)
+ {
+ DEBUG_0("Original vindow is not visible, enabling std. fullscreen mode");
+ image_move_from_image(fs->imd, fs->normal_imd);
+ }
+ else
+ {
+ DEBUG_0("Original vindow is still visible, enabling presentation fullscreen mode");
+ image_copy_from_image(fs->imd, fs->normal_imd);
+ }
if (options->stereo.enable_fsmode) {
image_stereo_set(fs->imd, options->stereo.fsmode);
/* hide normal window
* FIXME: properly restore this window on show
*/
+ if (fs->same_region)
+ {
#ifdef HIDE_WINDOW_IN_FULLSCREEN
- gtk_widget_hide(fs->normal_window);
+ gtk_widget_hide(fs->normal_window);
#endif
- image_change_fd(fs->normal_imd, NULL, image_zoom_get(fs->normal_imd));
+ image_change_fd(fs->normal_imd, NULL, image_zoom_get(fs->normal_imd));
+ }
return fs;
}
fullscreen_busy_mouse_disable(fs);
gdk_keyboard_ungrab(GDK_CURRENT_TIME);
- image_change_from_image(fs->normal_imd, fs->imd);
-
- if (options->stereo.enable_fsmode) {
- image_stereo_set(fs->normal_imd, options->stereo.mode);
- }
-
+ if (fs->same_region)
+ {
+ image_move_from_image(fs->normal_imd, fs->imd);
#ifdef HIDE_WINDOW_IN_FULLSCREEN
- gtk_widget_show(fs->normal_window);
+ gtk_widget_show(fs->normal_window);
#endif
+ if (options->stereo.enable_fsmode)
+ {
+ image_stereo_set(fs->normal_imd, options->stereo.mode);
+ }
+ }
+
+
if (fs->stop_func) fs->stop_func(fs, fs->stop_data);
gtk_widget_destroy(fs->window);
else
{
gdk_screen_get_monitor_geometry(screen, j, &rect);
- subname = g_strdup_printf("%s %d", _("Monitor"), j + 1);
+ subname = gdk_screen_get_monitor_plug_name(screen, j);
+ if (subname == NULL)
+ {
+ subname = g_strdup_printf("%s %d", _("Monitor"), j + 1);
+ }
}
sd = g_new0(ScreenData, 1);