internal void OnUIActivate(AxHost site)
 {
     if (this.siteUIActive != site)
     {
         if ((this.siteUIActive != null) && (this.siteUIActive != site))
         {
             AxHost siteUIActive = this.siteUIActive;
             bool axState = siteUIActive.GetAxState(AxHost.ownDisposing);
             try
             {
                 siteUIActive.SetAxState(AxHost.ownDisposing, true);
                 siteUIActive.GetInPlaceObject().UIDeactivate();
             }
             finally
             {
                 siteUIActive.SetAxState(AxHost.ownDisposing, axState);
             }
         }
         site.AddSelectionHandler();
         this.siteUIActive = site;
         ContainerControl containingControl = site.ContainingControl;
         if (containingControl != null)
         {
             containingControl.ActiveControl = site;
         }
     }
 }
Example #2
0
            /// <devdoc>
            ///    <para>[To be supplied.]</para>
            /// </devdoc>
            internal void OnUIActivate(AxHost site) {
                // The ShDocVw control repeatedly calls OnUIActivate() with the same
                // site. This causes the assert below to fire.
                //
                if (siteUIActive == site)
                    return;

                if (siteUIActive != null && siteUIActive != site) {
                    AxHost tempSite = siteUIActive;
                    bool ownDisposing = tempSite.GetAxState(AxHost.ownDisposing);
                    try {
                        tempSite.SetAxState(AxHost.ownDisposing, true);
                        tempSite.GetInPlaceObject().UIDeactivate();
                    }
                    finally {
                        tempSite.SetAxState(AxHost.ownDisposing, ownDisposing);
                    }
                }
                site.AddSelectionHandler();
                Debug.Assert(siteUIActive == null, "Object did not call OnUIDeactivate");
                Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "active Object is now "+site.ToString());
                siteUIActive = site;
                ContainerControl f = site.ContainingControl;
                Debug.Assert(f != null, "a control has to be on a ContainerControl...");
                if (f != null) {
                    f.ActiveControl = site;
                }
            }