diff --git a/rtgui/editwindow.cc b/rtgui/editwindow.cc index 6f0f8a45b..d4e3191d2 100644 --- a/rtgui/editwindow.cc +++ b/rtgui/editwindow.cc @@ -57,7 +57,15 @@ EditWindow* EditWindow::getInstance(RTWindow* p) Gdk::Rectangle lMonitorRect; instance_.editWnd.get_screen()->get_monitor_geometry(meowMonitor, lMonitorRect); instance_.editWnd.move(lMonitorRect.get_x(), lMonitorRect.get_y()); - instance_.editWnd.maximize(); + + if(!options.meowFullScreen) { + instance_.editWnd.maximize(); + instance_.editWnd.setFullScreen(false); + } else { + instance_.editWnd.fullscreen(); + instance_.editWnd.setFullScreen(true); + } + instance_.editWnd.show_all (); } @@ -257,9 +265,11 @@ bool EditWindow::on_delete_event(GdkEventAny* event) parent->fpanel->refreshEditedState (filesEdited); if(isMultiDisplayEnabled()) { - options.meowMonitor = get_screen()->get_monitor_at_window (get_window()); + options.meowMonitor = get_screen()->get_monitor_at_window(get_window()); } + options.meowFullScreen = isFullscreen; + hide(); unmaximize(); diff --git a/rtgui/editwindow.h b/rtgui/editwindow.h index 320b47b40..c53636130 100644 --- a/rtgui/editwindow.h +++ b/rtgui/editwindow.h @@ -53,6 +53,7 @@ public: //bool on_window_state_event(GdkEventWindowState* event); void on_mainNB_switch_page(Gtk::Widget* page, guint page_num); void set_title_decorated(Glib::ustring fname); + void setFullScreen (bool fullScreen) { isFullscreen = fullScreen; } void on_realize (); }; diff --git a/rtgui/options.cc b/rtgui/options.cc index 07c96d3da..53f0492bd 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -296,6 +296,7 @@ void Options::setDefaults () windowY = 0; windowMaximized = true; meowMonitor = -1; + meowFullScreen = false; saveAsDialogWidth = 920; saveAsDialogHeight = 680; savesParamsAtExit = true; @@ -1263,6 +1264,10 @@ int Options::readFromFile (Glib::ustring fname) meowMonitor = keyFile.get_integer ("GUI", "MeowMonitor"); } + if (keyFile.has_key ("GUI", "MeowFullScreen")) { + meowFullScreen = keyFile.get_boolean ("GUI", "MeowFullScreen"); + } + if (keyFile.has_key ("GUI", "WindowMaximized")) { windowMaximized = keyFile.get_boolean ("GUI", "WindowMaximized"); } @@ -2015,6 +2020,7 @@ int Options::saveToFile (Glib::ustring fname) keyFile.set_integer ("GUI", "WindowX", windowX); keyFile.set_integer ("GUI", "WindowY", windowY); keyFile.set_integer ("GUI", "MeowMonitor", meowMonitor); + keyFile.set_boolean ("GUI", "MeowFullScreen", meowFullScreen); keyFile.set_boolean ("GUI", "WindowMaximized", windowMaximized); keyFile.set_integer ("GUI", "DetailWindowWidth", detailWindowWidth); keyFile.set_integer ("GUI", "DetailWindowHeight", detailWindowHeight); diff --git a/rtgui/options.h b/rtgui/options.h index 5bbeba545..429bc7671 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -135,6 +135,7 @@ public: int windowWidth; int windowHeight; int meowMonitor; + bool meowFullScreen; int windowX; int windowY; bool windowMaximized;