-
Marco Cecchetti yazdı
Problem: When I'm in outline mode, if I select a slide in the left slide preview pane, ctrl-c, then select another slide I would like it after and hit ctrl-v; it refuses to cut/paste. Analysis: This issue is due to the fact that the outline view always grabs focus when activated and a view is activated whenever is pushed to the sfx shell stack even if it is not the new top-most active view shell (see `ViewShellManager`, `SfxViewShell`, `SfxDispacther`). Solution: Make the `OutlineViewShell` grabs focus only if it is the top-most active view shell. Rationale: When `OutlineViewShell::Activate` is invoked, instead of removing the focus grabbing action completely, we check if the `OutlineViewShell` instance is the the top-most view shell and perform the focus grabbing action only in such a case. This change required to have also the `DrawViewShell` grabbing focus on activation (only when it is the top-most view shell). In order to implement this solution I needed to add a new method (and data member) to the `ViewShellManager` class. I named it `GetTopViewShell`. This method returns a pointer to the top-most active view shell of the internal stack. The returned pointer is updated in the `UpdateShellStack` method, before the sfx shell stack is updated. For more details see : https://gist.github.com/mcecchetti/15b3ebc505d6582ea0db Change-Id: I619a406864f50f0e62dee3fcb9ac5d46e3d48272
967a386b