diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java index e0879046..a7f5d0cc 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryComp.java @@ -28,6 +28,7 @@ import javafx.geometry.Pos; import javafx.scene.Node; import javafx.scene.control.*; import javafx.scene.input.MouseButton; +import javafx.scene.input.MouseEvent; import javafx.scene.layout.ColumnConstraints; import javafx.scene.layout.Region; import javafx.scene.layout.StackPane; @@ -95,6 +96,16 @@ public abstract class StoreEntryComp extends SimpleComp { wrapper.executeDefaultAction(); }); }); + button.addEventFilter(MouseEvent.MOUSE_CLICKED, event -> { + if (event.getClickCount() > 1) { + event.consume(); + } + }); + button.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> { + if (event.getClickCount() > 1) { + event.consume(); + } + }); new ContextMenuAugment<>( mouseEvent -> mouseEvent.getButton() == MouseButton.SECONDARY, null, diff --git a/app/src/main/java/io/xpipe/app/core/AppTheme.java b/app/src/main/java/io/xpipe/app/core/AppTheme.java index 0f1d5f1d..9d60d879 100644 --- a/app/src/main/java/io/xpipe/app/core/AppTheme.java +++ b/app/src/main/java/io/xpipe/app/core/AppTheme.java @@ -87,6 +87,8 @@ public class AppTheme { try { // var c = new WindowControl(stage); // c.setWindowAttribute(20, AppPrefs.get().theme.getValue().isDark()); +// c.setWindowAttribute(34, 0xFFFFFFFEL); +// c.redraw(); } catch (Throwable e) { ErrorEvent.fromThrowable(e).handle(); } diff --git a/app/src/main/java/io/xpipe/app/util/WindowControl.java b/app/src/main/java/io/xpipe/app/util/WindowControl.java index 867b241b..b4d90024 100644 --- a/app/src/main/java/io/xpipe/app/util/WindowControl.java +++ b/app/src/main/java/io/xpipe/app/util/WindowControl.java @@ -40,9 +40,15 @@ public class WindowControl { } public void setWindowAttribute(int attribute, boolean attributeValue) { - DwmSupport.INSTANCE.DwmSetWindowAttribute( - windowHandle, attribute, new WinDef.BOOLByReference(new WinDef.BOOL(attributeValue)), WinDef.BOOL.SIZE); - User32.INSTANCE.UpdateWindow(windowHandle); + DwmSupport.INSTANCE.DwmSetWindowAttribute(windowHandle, attribute, new WinDef.BOOLByReference(new WinDef.BOOL(attributeValue)), WinDef.BOOL.SIZE); + } + + public void setWindowAttribute(int attribute, long attributeValue) { + DwmSupport.INSTANCE.DwmSetWindowAttribute(windowHandle, attribute, new WinDef.DWORDByReference(new WinDef.DWORD(attributeValue)), WinDef.DWORD.SIZE); + } + + public void redraw() { + User32.INSTANCE.RedrawWindow(windowHandle, null, null, new WinDef.DWORD(User32.RDW_FRAME | User32.RDW_VALIDATE)); } public interface DwmSupport extends Library {