コード例 #1
0
        void DoDispose(bool fromDestroy)
        {
            if (_tickCallback.HasValue)
            {
                if (!GtkWidget.IsClosed)
                {
                    Native.GtkWidgetRemoveTickCallback(GtkWidget, _tickCallback.Value);
                }
                _tickCallback = null;
            }

            //We are calling it here, since signal handler will be detached
            if (!GtkWidget.IsClosed)
            {
                Closed?.Invoke();
            }
            foreach (var d in Disposables.AsEnumerable().Reverse())
            {
                d.Dispose();
            }
            Disposables.Clear();

            if (!fromDestroy && !GtkWidget.IsClosed)
            {
                Native.GtkWindowClose(GtkWidget);
            }
            GtkWidget.Dispose();

            if (_gcHandle.IsAllocated)
            {
                _gcHandle.Free();
            }
        }
コード例 #2
0
        public void DoDispose(bool fromDestroy)
        {
            foreach (var d in Disposables.AsEnumerable().Reverse())
            {
                d.Dispose();
            }

            if (!GtkWidget.IsClosed)
            {
                Closed?.Invoke();
            }

            Disposables.Clear();

            if (!fromDestroy && !GtkWidget.IsClosed)
            {
                Native.GtkWindowClose(GtkWidget);
            }

            GtkWidget.Dispose();
        }