Esempio n. 1
0
 public DiffMergeInstance(IAnkhServiceProvider context, IVsWindowFrame frame, UnregisterHandler unRegisterhandler, QueryHandler queryHandler, int mergeCookie)
     : this(context, frame)
 {
     _isMerge     = true;
     _unregister  = unRegisterhandler;
     _query       = queryHandler;
     _mergeCookie = mergeCookie;
     _mergeHooked = true;
 }
Esempio n. 2
0
        protected override void Dispose(bool disposing)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            try
            {
                if (disposing)
                {
                    if (_mergeHooked)
                    {
                        _mergeHooked = false;

                        UnregisterHandler unregister = _unregister;

                        IAnkhCommandService cs = GetService <IAnkhCommandService>();
                        if (cs != null)
                        {
                            cs.PostIdleAction(delegate
                            {
                                unregister(_mergeCookie);
                            });
                        }
                    }

                    if (_frameHooked)
                    {
                        _frameHooked = false;
                        _frame2.Unadvise(_frameCookie);
                    }
                }

                // Unbreak possible circular dependency
                _frame      = null;
                _frame2     = null;
                _unregister = null;
            }
            finally
            {
                base.Dispose(disposing);
            }
        }