[gnote] Only save/restore main window position if not maximized
- From: Aurimas Äernius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Only save/restore main window position if not maximized
- Date: Sun, 28 Oct 2012 20:30:51 +0000 (UTC)
commit 05d380f1bf7885e121f4fbc1391576ab11d2418c
Author: Aurimas Äernius <aurisc4 gmail com>
Date: Sun Oct 28 22:28:01 2012 +0200
Only save/restore main window position if not maximized
* Save size and position if not maximized
* Restore size if not maximized
src/searchnoteswidget.cpp | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
---
diff --git a/src/searchnoteswidget.cpp b/src/searchnoteswidget.cpp
index 278c3b8..8b0f708 100644
--- a/src/searchnoteswidget.cpp
+++ b/src/searchnoteswidget.cpp
@@ -412,6 +412,7 @@ void SearchNotesWidget::restore_position()
int width = settings->get_int(Preferences::SEARCH_WINDOW_WIDTH);
int height = settings->get_int(Preferences::SEARCH_WINDOW_HEIGHT);
int pos = settings->get_int(Preferences::SEARCH_WINDOW_SPLITTER_POS);
+ bool maximized = settings->get_boolean(Preferences::MAIN_WINDOW_MAXIMIZED);
if((width == 0) || (height == 0)) {
return;
@@ -421,14 +422,20 @@ void SearchNotesWidget::restore_position()
return;
}
- window->set_default_size(width, height);
- if(window->get_visible()) {
- window->get_window()->resize(width, height);
+ if(window->get_realized()) {
+ //if window is showing, use actual state
+ maximized = window->get_window()->get_state() & Gdk::WINDOW_STATE_MAXIMIZED;
}
+
+ window->set_default_size(width, height);
if(!m_initial_position_restored) {
window->move(x, y);
m_initial_position_restored = true;
}
+
+ if(!maximized && window->get_visible()) {
+ window->get_window()->resize(width, height);
+ }
if(pos) {
m_hpaned.set_position(pos);
}
@@ -445,21 +452,23 @@ void SearchNotesWidget::save_position()
if(!current_host || !current_host->running()) {
return;
}
+
+ Glib::RefPtr<Gio::Settings> settings = Preferences::obj()
+ .get_schema_settings(Preferences::SCHEMA_GNOTE);
+ settings->set_int(Preferences::SEARCH_WINDOW_SPLITTER_POS, m_hpaned.get_position());
+
Gtk::Window *window = dynamic_cast<Gtk::Window*>(current_host);
- if(!window) {
+ if(!window || (window->get_window()->get_state() & Gdk::WINDOW_STATE_MAXIMIZED) != 0) {
return;
}
window->get_position(x, y);
window->get_size(width, height);
- Glib::RefPtr<Gio::Settings> settings = Preferences::obj()
- .get_schema_settings(Preferences::SCHEMA_GNOTE);
settings->set_int(Preferences::SEARCH_WINDOW_X_POS, x);
settings->set_int(Preferences::SEARCH_WINDOW_Y_POS, y);
settings->set_int(Preferences::SEARCH_WINDOW_WIDTH, width);
settings->set_int(Preferences::SEARCH_WINDOW_HEIGHT, height);
- settings->set_int(Preferences::SEARCH_WINDOW_SPLITTER_POS, m_hpaned.get_position());
}
void SearchNotesWidget::notebook_pixbuf_cell_data_func(Gtk::CellRenderer * renderer,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]