diff --git a/keybinding.c b/keybinding.c index 32800da..f3bdef7 100644 --- a/keybinding.c +++ b/keybinding.c @@ -953,14 +953,21 @@ keybinding_focus_tile(struct nedm_server *server, uint32_t tile_id) { workspace_focus_tile(tile->workspace, tile); struct nedm_view *next_view = tile->workspace->focused_tile->view; seat_set_focus(server->seat, next_view); + + char *view_title = ""; + if (next_view && next_view->impl && next_view->impl->get_title) { + char *title = next_view->impl->get_title(next_view); + view_title = title ? title : ""; + } + ipc_send_event( output->server, "{\"event_name\":\"focus_tile\",\"old_tile_id\":%d,\"new_tile_" "id\":%d,\"old_workspace\":%d,\"new_workspace\":%d,\"old_output\":\"%" - "s\",\"old_output_id\":%d,\"output\":\"%s\",\"output_id\":%d}", + "s\",\"old_output_id\":%d,\"output\":\"%s\",\"output_id\":%d,\"view_title\":\"%s\"}", old_tile->id, tile->workspace->focused_tile->id, workspace->num + 1, tile->workspace->num + 1, output->name, output_get_num(output), - tile->workspace->output->name, output_get_num(tile->workspace->output)); + tile->workspace->output->name, output_get_num(tile->workspace->output), view_title); } void diff --git a/view.c b/view.c index 0617d1d..481766f 100644 --- a/view.c +++ b/view.c @@ -80,6 +80,12 @@ void view_maximize(struct nedm_view *view, struct nedm_tile *tile) { uint32_t gap = view->workspace->output->server->gap_size; + // Smart gaps: only apply gaps if there are multiple views in the workspace + uint32_t view_count = wl_list_length(&view->workspace->views); + if (view_count <= 1) { + gap = 0; + } + // Apply gap offset to position view->ox = tile->tile.x + gap; view->oy = tile->tile.y + gap;