mirror of
https://github.com/labwc/labwc.git
synced 2026-02-17 22:05:30 -05:00
view: only focus topmost view if unmapped view was focused
The unmap() handlers should only call desktop_focus_topmost_view() if the unmapped view was the focused view. Unmapping a view that was not focused should not change the focus. I expect this rarely had any effect in practice; it would only matter in a focus-follows-mouse config where some view other than the one on top was focused. But it still seems better to fix. Rather than repeating the logic in two places, create a small view_impl_unmap() helper. Perhaps more common "unmap" logic could be moved there in future.
This commit is contained in:
parent
8920e546db
commit
b053c9e375
4 changed files with 12 additions and 2 deletions
|
|
@ -75,6 +75,15 @@ view_impl_map(struct view *view)
|
|||
view_get_string_prop(view, "title"));
|
||||
}
|
||||
|
||||
void
|
||||
view_impl_unmap(struct view *view)
|
||||
{
|
||||
struct seat *seat = &view->server->seat;
|
||||
if (seat->seat->keyboard_state.focused_surface == view->surface) {
|
||||
desktop_focus_topmost_view(view->server);
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
resizing_edge(struct view *view, uint32_t edge)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue