Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove magic lib #1258

merged 163 commits into from Feb 10, 2019


Copy link

commented Jan 9, 2019


Remove MagicLibrary from mRemoteNG and replace its functionality with DockPanelSuite

Motivation and Context

No trusted source available for MagicLibrary. We cannot depend on this old 3rd party library (which has a copyright date of 2003!) going forward. This could cause stability issues and/or introduce unforeseen problems in the future.

The DPS component is already in use in other areas of mRemoteNG and is actively maintained. It provides the same functionality that ML did, but better, modern and additional options.

How Has This Been Tested?

Ensured all existing unit tests pass.

Tested by myself and @jotatsu during the development phase. Many commits were also tested and validated by @jcefoli at the same time.

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

New Feature: #154

Breaking Change: Tab switcher controls (left and right arrows at the top right of the connection tab bar) are no longer available.


  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
jotatsu and others added 30 commits Dec 29, 2018
First removal
Magic library is removed, basic tabbing functions are on, but all other functions are commented.

Some code is lifted from DockPanelSuite in MremoteNGAutoHideStrip to change the behavior and looks for Mremote .
syntax clean up and null checks
mostly from ReSharper
Initial tab close implemtnation
PuttyProcess.Dispose() seems to hang in my initial testing, so it's been disabled for now...
Find the correct connection and switch to it
If a connection is open, double clicking on it in the connection tree should switch to that connection...
Update ConnectionWindow.cs
Resolved tabs getting into dock panel positions . Tabs are now restricted to  DockAreas.Document | DockAreas.Float. Menu hook no on opening event insteaed of mouse events .
Enable DPS 2015 Themes
Rename themes to show that they are the DPS out of the box themes.
avoid exception
When clicking on a cell after switching from an extensable theme to a non-extensable one.
Update ConnectionWindow.cs
Restored rename tab functionality
code clean up / fix invalid cast
exception would be thrown when attempting to start an external app as a connection.
Tab close , other and right restored
Reorganized the close event to the connectionTab class, restore the close from the tab X icon functionality , close all other and close left
Cleanup unused code in CloseOtherTabsToTheRight
Cleanup unused code in CloseOtherTabsToTheRight
kmscode and others added 14 commits Jan 24, 2019
Screenshot only taken from ConnectionTab area
Screenshots contained dockstrip area (the tab name with the x icon), now they are only limited to the ConnectionTab area
Improvement in protocol to tab focus
Tabs are focused now when mouse is clicked inside of the connetiontab, before clicking inside ssh window, for example, will not highlight the tab.
Improves RDP tab focus
Improves rdp tab focus by passing active to focus event between rdp client and DPS  tab
Screenshots correctly taken from windowed tab
Screenshots can be taken from undock tabs, created helper tab singleton class to make it easy to determine the current tab in the DPS - mremote model
Changed refocusing method for rdp tabs
Solve bug reported by Joe Cefoli on gitter
new tabs are created in current panel
Added current panel to TabHelper, new tabs are created in the current panel
Avoid null pointers when race conditions or faults are present in pro…
…tocol closing

Avoid some of the detected faults

@jotatsu jotatsu added this to In progress in Version 1.77 Feb 7, 2019

kmscode and others added 11 commits Feb 7, 2019
Remove deadlock in #1247
#1247 was caused by a loop of the putty control calling the tab dispose and back again. Created a flag to indicate the ConnectionTab that the closing process was called by the protocol and not the user.
Remove outdated/incorrect translations for strErrorFipsPolicyIncompat…

These will need to be re-translated.
Remove IsSimpleDropSink restores item sorting for #1266
#1266 was generated by OLV ignoring some sink cusotmizations by using the  IsSimpleDropSink flag

@kmscode kmscode merged commit 8281f48 into develop Feb 10, 2019

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
continuous-integration/jenkins/branch This commit looks good

Version 1.77 automation moved this from In progress to Done Feb 10, 2019

@sparerd sparerd referenced this pull request Feb 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
3 participants
You can’t perform that action at this time.