#1069 closed todo (done)

how to refer to the current window

Reported by: Ichthyostega Owned by: Ichthyostega
Priority: grave Milestone: 0integration
Component: lumieraGui Keywords: gui architecture lifecycle design
Sub Tickets: Parent Tickets: #1032, #1044, #1048, #1067, #1074, #1144

Description

we've got a problem with defining global Actions, e.g. for a global menu: we can't bind them to a specific window, rather they need to attach to the current window at invocation time

Change history (6)

comment:1 by Ichthyostega, at 2017-01-31T21:54:19Z

blocking: 1032, 1044, 1048, 1067 → 1032, 1044, 1048, 1067, 1074

comment:2 by Ichthyostega, at 2017-02-01T02:58:45Z

Status: new → accepted

made a rought draft.

  • basically the UiManager is the right component to serve as link for binding such global actions
  • the WindowList has all the information to find out about the currently active window
  • stick to the common pattern in UI programming:
    • have several free floating components
    • wire them once on startup
    • let the events do the work

comment:3 by Ichthyostega, at 2017-02-10T23:15:54Z

...while the UiManager might serve well as link, he is not actually the right one to handle this problem.
Thus I've now introduced a new top-level Controller, which

  • like any controller is connected to the UI-Bus
  • corresponds to the model Root in the Session
  • is planned to establish a link between the hierarchical structure of the model and transient user interaction state, read "the current window"


comment:4 by Ichthyostega, at 2017-02-14T02:48:36Z

Resolution: → done
Status: accepted → closed

this problem is effectively solved now

  • we use a global wiring context (ticket:1067)
  • each of these global managers knows about the other's responsibilities
  • the WindowList is able to inspect allo top-level WorkspaceWindow entries to pick the first one marked active by GTK.
  • the other global facilities , like the global menu actions, just delegate to the WindowList for this task.

comment:5 by Ichthyostega, at 2018-06-17T12:51:31Z

blocking: 1032, 1044, 1048, 1067, 1074 → 1032, 1044, 1048, 1067, 1074, 1144

comment:6 by Undercover Agent, at 2025-12-25T00:00:00Z

blocking: 1032, 1044, 1048, 1067, 1074, 1144
Parent Tickets: → 1032, 1044, 1048, 1067, 1074, 1144

Migration MasterTickets ⟼ Subtickets-plugin

Note: See TracTickets for help on using tickets.