From b5c265496956d8481ad0a4ec37e4d13f14b1a4e1 Mon Sep 17 00:00:00 2001 From: jinjiaodawang Date: Wed, 9 Oct 2024 09:51:24 +0800 Subject: [PATCH 1/2] fix #1144, focus window on macOS --- pdf_viewer/main_widget.cpp | 1 + pdf_viewer/utils.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/pdf_viewer/main_widget.cpp b/pdf_viewer/main_widget.cpp index 516b958e5..2cc941b04 100644 --- a/pdf_viewer/main_widget.cpp +++ b/pdf_viewer/main_widget.cpp @@ -1968,6 +1968,7 @@ void MainWidget::open_document(const Path& path, std::optional offset_x, } update_scrollbar(); } + focus_on_widget(this); deselect_document_indices(); invalidate_render(); diff --git a/pdf_viewer/utils.h b/pdf_viewer/utils.h index 4063ed7bc..8d2bcad7e 100644 --- a/pdf_viewer/utils.h +++ b/pdf_viewer/utils.h @@ -56,6 +56,8 @@ int argminf(const std::vector& collection, std::function f) { } return min_index; } + +void focus_on_widget(QWidget* widget); void rect_to_quad(fz_rect rect, float quad[8]); void copy_to_clipboard(const std::wstring& text, bool selection = false); void install_app(const char* argv0); From 1202656ac5306ebae8b0d018924056bb8d4f8784 Mon Sep 17 00:00:00 2001 From: jinjiaodawang Date: Wed, 9 Oct 2024 10:58:53 +0800 Subject: [PATCH 2/2] should focus window even open the same file --- pdf_viewer/main.cpp | 2 ++ pdf_viewer/main_widget.cpp | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pdf_viewer/main.cpp b/pdf_viewer/main.cpp index 744aed648..afbd21e9a 100644 --- a/pdf_viewer/main.cpp +++ b/pdf_viewer/main.cpp @@ -604,6 +604,7 @@ MainWidget* handle_args(const QStringList& arguments, QLocalSocket* origin=nullp target_window->push_state(); target_window->open_document_at_location(pdf_file_name, page.value_or(0), x_loc, y_loc, zoom_level); } + focus_on_widget(target_window); } else if (latex_file_name) { if (target_window) { @@ -619,6 +620,7 @@ MainWidget* handle_args(const QStringList& arguments, QLocalSocket* origin=nullp target_window->push_state(); target_window->open_document(pdf_file_name); } + focus_on_widget(target_window); } invalidate_render(); diff --git a/pdf_viewer/main_widget.cpp b/pdf_viewer/main_widget.cpp index 2cc941b04..516b958e5 100644 --- a/pdf_viewer/main_widget.cpp +++ b/pdf_viewer/main_widget.cpp @@ -1968,7 +1968,6 @@ void MainWidget::open_document(const Path& path, std::optional offset_x, } update_scrollbar(); } - focus_on_widget(this); deselect_document_indices(); invalidate_render();