The Citrix workspace client automatically assigns itself a ‘topmost’ status in Windows once it goes to fullscreen mode. Once this happens all other windows running on your Windows computer are no longer visible and can’t be accessed without switching the Citrix windows from fullscreen mode to windowed or minimized mode.
This behaviour can be annoying when you need to run certain applications locally for best behaviour, one such an example is Teams.
As a workaround I’ve developed a small application which checks all windows for the topmost flag. If a Citrix window (CDViewer) is detected with this flag the flag automatically gets removed. After removal the application adds the flag to all applications listed in the application config file (CtxNotTopmost.dll.config). The last application to receive the topmost status will always be on top of other windows.
In addition to this functionality the application always displays a ‘widget’ on top. This widget lists the open windows on the local machine. Thus allowing you to bring any of those applications to the front if needed.
You can find the application which I’ve named CtxNotTopmost (I was low on inspiration) on my Github: https://github.com/scara1701/CtxNotTopmost Use the releases page to download the most recent version of the application.
Remember, this is an early release of the application. It has been sufficient to fulfill my needs thus far.
One of the things I frequently perform is copying the path of a file in a SharePoint library, not creating a link via the ‘Share’ menu.
There is a copy path icon in the details section of the file in SharePoint.
There is however one annoying caveat for this function. It is always beneath the ‘Activity section’, which on a file with a lot of activity is constantly loading. This makes the ‘Copy path’ option always move down right before I manage to click on it.
I was in the process of learning to build webparts for SharePoint. So I ended up writing an extension that adds a ‘copy path’ option to the menubar of the document library.
Afterwards you can paste the link from your clipboard! 🙂
When working with SharePoint you might have a situation in which you’ve assigned permissions to another user. But what if you want to reset this change using a Power Automate flow?
You could remove the permissions on the object with the build in Power Automate “Stop sharing an item or file” function. But if you do this all permissions of the item will be gone.
What we want is for the object to inherit the permissions of its parent. There is (as far as I’ve seen) no Power Automate function which allows us to do this. In the SharePoint API there is a function called ‘ResetRoleInheritance’ which does exactly what we want.
So what we can do is make a POST to the SharePoint API:
After running above command you will notice that the permissions of the item wil now no longer be unique and match the permissions of the list or parent.
There is a caveat. The above call will have an error if the item does not have unique permissions.
To avoid this we should verify first that the item is indeed using unique permissions. Once again we will need to use a function of the SharePoint api. Here we will call the ‘HasUniqueRoleAssignments’ function.
Whilst playing with Xamarin I encountered an issue when debugging the Android version of the app. Apparently localhost is not translated causing an error when trying to access an API running on my development machine. Strangely I did not encounter this issue when debugging the IOS version of my app.
To access your localhost (aka your development machine) you need to refer to the IP-address 10.0.2.2.
To work around this issue you can use the DeviceInfo class from Xamarin.Essentials. Just add a statement which checks the type of device the code is being ran on.