Remember window positions as preferences
This commit is contained in:
@@ -184,7 +184,9 @@ void adjust_window_mode() {
|
||||
mainPtr().create(sf::VideoMode(width, winHeight, 32), "Blades of Exile", sf::Style::Titlebar | sf::Style::Close, winSettings);
|
||||
|
||||
// Center the small window on the desktop
|
||||
mainPtr().setPosition({static_cast<int>((desktop.width - width) / 2), static_cast<int>((desktop.height - height) / 2)});
|
||||
int win_x = get_int_pref("MainWindowX", static_cast<int>((desktop.width - width) / 2));
|
||||
int win_y = get_int_pref("MainWindowY", static_cast<int>((desktop.height - height) / 2));
|
||||
mainPtr().setPosition({win_x, win_y});
|
||||
} else {
|
||||
mainPtr().create(desktop, "Blades of Exile", sf::Style::None, winSettings);
|
||||
mainPtr().setPosition({0,0});
|
||||
|
@@ -681,7 +681,10 @@ void init_mini_map() {
|
||||
if (map_scale < 0.1) map_scale = 1.0;
|
||||
if (mini_map().isOpen()) mini_map().close();
|
||||
mini_map().create(sf::VideoMode(map_scale*296,map_scale*277), "Map", sf::Style::Titlebar | sf::Style::Close);
|
||||
mini_map().setPosition(sf::Vector2i(52,62));
|
||||
// TODO why is 52,62 the default position, anyway?
|
||||
int map_x = get_int_pref("MapWindowX", 52);
|
||||
int map_y = get_int_pref("MapWindowY", 62);
|
||||
mini_map().setPosition(sf::Vector2i(map_x,map_y));
|
||||
sf::View view;
|
||||
view.reset(sf::FloatRect(0, 0, map_scale*296,map_scale*277));
|
||||
view.setViewport(sf::FloatRect(0, 0, map_scale, map_scale));
|
||||
|
@@ -1299,6 +1299,9 @@ void handle_quit_event() {
|
||||
All_Done = true;
|
||||
}
|
||||
|
||||
int last_window_x = 0;
|
||||
int last_window_y = 0;
|
||||
|
||||
void handle_one_event(const sf::Event& event, cFramerateLimiter& fps_limiter) {
|
||||
|
||||
// What does this do and should it be here?
|
||||
@@ -1334,11 +1337,13 @@ void handle_one_event(const sf::Event& event, cFramerateLimiter& fps_limiter) {
|
||||
break;
|
||||
|
||||
case sf::Event::GainedFocus:
|
||||
check_window_moved(mainPtr(), last_window_x, last_window_y, "MainWindow");
|
||||
makeFrontWindow(mainPtr());
|
||||
change_cursor({event.mouseMove.x, event.mouseMove.y});
|
||||
return;
|
||||
|
||||
case sf::Event::MouseMoved:
|
||||
check_window_moved(mainPtr(), last_window_x, last_window_y, "MainWindow");
|
||||
change_cursor({event.mouseMove.x, event.mouseMove.y});
|
||||
return;
|
||||
|
||||
@@ -1360,12 +1365,18 @@ void queue_fake_event(const sf::Event& event) {
|
||||
fake_event_queue.push_back(event);
|
||||
}
|
||||
|
||||
int last_map_x = 0;
|
||||
int last_map_y = 0;
|
||||
|
||||
void handle_one_minimap_event(const sf::Event& event) {
|
||||
if(event.type == sf::Event::Closed) {
|
||||
close_map(true);
|
||||
} else if(event.type == sf::Event::GainedFocus) {
|
||||
check_window_moved(mini_map(), last_map_x, last_map_y, "MapWindow");
|
||||
makeFrontWindow(mainPtr());
|
||||
} else if(event.type == sf::Event::KeyPressed) {
|
||||
}else if(event.type == sf::Event::MouseMoved){
|
||||
check_window_moved(mini_map(), last_map_x, last_map_y, "MapWindow");
|
||||
}else if(event.type == sf::Event::KeyPressed) {
|
||||
switch(event.key.code){
|
||||
case sf::Keyboard::Escape:
|
||||
close_map(true);
|
||||
|
Reference in New Issue
Block a user