Skip to content
Merged
5 changes: 4 additions & 1 deletion debian/libmiral7.symbols
Original file line number Diff line number Diff line change
Expand Up @@ -715,11 +715,14 @@ libmiral.so.7 libmiral7 #MINVER#
(c++)"miral::WaylandExtensions::ext_foreign_toplevel_list_v1@MIRAL_5.6" 5.6.0
(c++)"miral::WaylandExtensions::ext_image_copy_capture_manager_v1@MIRAL_5.6" 5.6.0
(c++)"miral::WaylandExtensions::ext_output_image_capture_source_manager_v1@MIRAL_5.6" 5.6.0
(c++)"miral::live_config::Key::Key(miral::live_config::Key const&)@MIRAL_5.5" 5.6.0
(c++)"typeinfo for miral::ApplicationSwitcher@MIRAL_5.6" 5.6.0
(c++)"typeinfo for miral::FloatingWindowManager@MIRAL_5.6" 5.6.0
(c++)"vtable for miral::FloatingWindowManager@MIRAL_5.6" 5.6.0
(c++|arch-bits=32)"miral::CursorScale::scale_temporarily(float, std::chrono::duration<long long, std::ratio<1ll, 1000ll> >) const@MIRAL_5.6" 5.6.0
(c++|arch-bits=32)"miral::LocatePointer::delay(std::chrono::duration<long long, std::ratio<1ll, 1000ll> >)@MIRAL_5.6" 5.6.0
(c++|arch-bits=64)"miral::CursorScale::scale_temporarily(float, std::chrono::duration<long, std::ratio<1l, 1000l> >) const@MIRAL_5.6" 5.6.0
(c++|arch-bits=64)"miral::LocatePointer::delay(std::chrono::duration<long, std::ratio<1l, 1000l> >)@MIRAL_5.6" 5.6.0
MIRAL_5.7@MIRAL_5.7 5.7.0
(c++)"miral::MinimalWindowManager::application_selector_advise_delete_window(miral::WindowInfo const&)@MIRAL_5.7" 5.7.0
(c++)"miral::MinimalWindowManager::application_selector_advise_focus_gained(miral::WindowInfo const&)@MIRAL_5.7" 5.7.0
(c++)"miral::MinimalWindowManager::application_selector_advise_focus_lost(miral::WindowInfo const&)@MIRAL_5.7" 5.7.0
12 changes: 12 additions & 0 deletions include/miral/miral/minimal_window_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,18 @@ class MinimalWindowManager : public WindowManagementPolicy
bool begin_touch_move(WindowInfo const& window_info, MirInputEvent const* input_event);
bool begin_touch_resize(WindowInfo const& window_info, MirInputEvent const* input_event, MirResizeEdge const& edge);

/// Helper method to interact with application_selector for focus gained events
/// \remark Since MirAL 5.7
void application_selector_advise_focus_gained(WindowInfo const& window_info);

/// Helper method to interact with application_selector for focus lost events
/// \remark Since MirAL 5.7
void application_selector_advise_focus_lost(WindowInfo const& window_info);

/// Helper method to interact with application_selector for delete window events
/// \remark Since MirAL 5.7
void application_selector_advise_delete_window(WindowInfo const& window_info);

private:
struct Impl;
Impl* const self;
Expand Down
2 changes: 1 addition & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set(MIRPLATFORM_ABI 34)

set(MIRAL_VERSION_MAJOR 5)
set(MIRAL_VERSION_MINOR 6)
set(MIRAL_VERSION_MINOR 7)
set(MIRAL_VERSION_PATCH 0)
set(MIRAL_VERSION ${MIRAL_VERSION_MAJOR}.${MIRAL_VERSION_MINOR}.${MIRAL_VERSION_PATCH})

Expand Down
21 changes: 18 additions & 3 deletions src/miral/minimal_window_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -315,20 +315,20 @@ void miral::MinimalWindowManager::advise_new_window(miral::WindowInfo const& win
void miral::MinimalWindowManager::advise_focus_gained(WindowInfo const& window_info)
{
tools.raise_tree(window_info.window());
self->application_selector.advise_focus_gained(window_info);
application_selector_advise_focus_gained(window_info);
}

void miral::MinimalWindowManager::advise_new_app(miral::ApplicationInfo&){}
void miral::MinimalWindowManager::advise_delete_app(miral::ApplicationInfo const&){}

void miral::MinimalWindowManager::advise_focus_lost(const miral::WindowInfo &window_info)
{
self->application_selector.advise_focus_lost(window_info);
application_selector_advise_focus_lost(window_info);
}

void miral::MinimalWindowManager::advise_delete_window(miral::WindowInfo const& window_info)
{
self->application_selector.advise_delete_window(window_info);
application_selector_advise_delete_window(window_info);
}

bool miral::MinimalWindowManager::Impl::prepare_for_gesture(
Expand Down Expand Up @@ -654,3 +654,18 @@ bool miral::MinimalWindowManager::Impl::advise_new_window(WindowInfo const& info

return should_receive_focus;
}

void miral::MinimalWindowManager::application_selector_advise_focus_gained(WindowInfo const& window_info)
{
self->application_selector.advise_focus_gained(window_info);
}

void miral::MinimalWindowManager::application_selector_advise_focus_lost(WindowInfo const& window_info)
{
self->application_selector.advise_focus_lost(window_info);
}

void miral::MinimalWindowManager::application_selector_advise_delete_window(WindowInfo const& window_info)
{
self->application_selector.advise_delete_window(window_info);
}
9 changes: 9 additions & 0 deletions src/miral/symbols.map
Original file line number Diff line number Diff line change
Expand Up @@ -764,3 +764,12 @@ global:
vtable?for?miral::FloatingWindowManager;
};
} MIRAL_5.5;

MIRAL_5.7 {
global:
extern "C++" {
miral::MinimalWindowManager::application_selector_advise_delete_window*;
miral::MinimalWindowManager::application_selector_advise_focus_gained*;
miral::MinimalWindowManager::application_selector_advise_focus_lost*;
};
} MIRAL_5.6;
Loading