mirror of
https://github.com/greenshot/greenshot
synced 2025-07-16 10:03:44 -07:00
Optimizing the windows logic, as far as was possible without LINQ. Added a check to try to fix BUG-2017.
This commit is contained in:
parent
68f0926b4d
commit
d446127e19
5 changed files with 316 additions and 315 deletions
|
@ -879,8 +879,7 @@ namespace Greenshot {
|
|||
// check if thumbnailPreview is enabled and DWM is enabled
|
||||
bool thumbnailPreview = _conf.ThumnailPreview && DWM.IsDwmEnabled();
|
||||
|
||||
List<WindowDetails> windows = WindowDetails.GetTopLevelWindows();
|
||||
foreach(WindowDetails window in windows) {
|
||||
foreach(WindowDetails window in WindowDetails.GetTopLevelWindows()) {
|
||||
|
||||
string title = window.Text;
|
||||
if (title != null) {
|
||||
|
|
|
@ -471,7 +471,7 @@ namespace Greenshot.Helpers {
|
|||
private void RetrieveWindowDetails() {
|
||||
LOG.Debug("start RetrieveWindowDetails");
|
||||
// Start Enumeration of "active" windows
|
||||
List<WindowDetails> allWindows = WindowDetails.GetMetroApps();
|
||||
List<WindowDetails> allWindows = new List<WindowDetails>(WindowDetails.GetMetroApps());
|
||||
allWindows.AddRange(WindowDetails.GetAllWindows());
|
||||
foreach (WindowDetails window in allWindows) {
|
||||
// Window should be visible and not ourselves
|
||||
|
|
|
@ -71,19 +71,19 @@ namespace Greenshot.Helpers {
|
|||
/// <summary>
|
||||
/// Helper Method for creating an Email with Image Attachment
|
||||
/// </summary>
|
||||
/// <param name="image">The image to send</param>
|
||||
/// <param name="surface">The image to send</param>
|
||||
/// <param name="captureDetails">ICaptureDetails</param>
|
||||
public static void SendImage(ISurface surface, ICaptureDetails captureDetails) {
|
||||
string tmpFile = ImageOutput.SaveNamedTmpFile(surface, captureDetails, new SurfaceOutputSettings());
|
||||
|
||||
if (tmpFile != null) {
|
||||
// Store the list of currently active windows, so we can make sure we show the email window later!
|
||||
List<WindowDetails> windowsBefore = WindowDetails.GetVisibleWindows();
|
||||
bool isEmailSend = false;
|
||||
var windowsBefore = WindowDetails.GetVisibleWindows();
|
||||
//bool isEmailSend = false;
|
||||
//if (EmailConfigHelper.HasOutlook() && (conf.OutputEMailFormat == EmailFormat.OUTLOOK_HTML || conf.OutputEMailFormat == EmailFormat.OUTLOOK_TXT)) {
|
||||
// isEmailSend = OutlookExporter.ExportToOutlook(tmpFile, captureDetails);
|
||||
//}
|
||||
if (!isEmailSend && EmailConfigHelper.HasMAPI()) {
|
||||
if (/*!isEmailSend &&*/ EmailConfigHelper.HasMAPI()) {
|
||||
// Fallback to MAPI
|
||||
// Send the email
|
||||
SendImage(tmpFile, captureDetails.Title);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -109,9 +109,10 @@ namespace GreenshotPlugin.UnmanagedHelpers {
|
|||
|
||||
WS_EX_LAYERED = 0x00080000,
|
||||
WS_EX_NOINHERITLAYOUT = 0x00100000, // Disable inheritence of mirroring by children
|
||||
WS_EX_NOREDIRECTIONBITMAP = 0x00200000, //The window does not render to a redirection surface. This is for windows that do not have visible content or that use mechanisms other than surfaces to provide their visual.
|
||||
WS_EX_LAYOUTRTL = 0x00400000, // Right to left mirroring
|
||||
WS_EX_COMPOSITED = 0x02000000,
|
||||
WS_EX_NOACTIVATE = 0x08000000
|
||||
WS_EX_NOACTIVATE = 0x08000000 // A top-level window created with this style does not become the foreground window when the user clicks it. The system does not bring this window to the foreground when the user minimizes or closes the foreground window.
|
||||
}
|
||||
|
||||
[Flags]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue